JavaScript字符串拼接无法工作

3

这段JavaScript代码拼接不起作用。我在脚本标签结束前尝试了一个alert,它被显示了,但是我想在第三个或不同的文本字段中显示下面的代码结果。

HTML:

<input type="text" id="field"><br>
<input type="text" id="str2"><br>
<input type="text" id="str3"><br>
<button onclick="concate()">Concatenate</button>

JavaScript:

var s=document.getElementById("field").value;
var t=document.getElementById("str2").value;
var st=document.getElementById("str3").value;

function concate()
{
    st=s+t;
    document.getElementById("str3").value.innerHTML=st;
    console.log(st);
    document.write(st); 
}

请注意:http://www.w3schools.com/jsref/dom_obj_text.asp - Patrick Aleman
2个回答

5
没有函数 .value.innerHTML 存在。
document.getElementById("str3").value = st;

同时,您应该在函数内获取字段值,并使用 } 来关闭函数定义,查看下面的示例。
希望这能帮到您。

function concate()
{
     var s=document.getElementById("field").value;
     var t=document.getElementById("str2").value;

     document.getElementById("str3").value=s+t;
}
<input type="text" id="field"><br>
<input type="text" id="str2"><br>
<input type="text" id="str3"><br>
<button onclick="concate()">Concatenate</button>


1
确认和澄清一下:当您获取值(在问题代码中)时,是脚本第一次运行时(可能在加载时并且很可能为空白),而不是在运行concat时。因此,在对输入进行任何更改之后,您已经填充了st。通过将它们放在函数内部,您可以在调用函数时读取当前值。 - freedomn-m
感谢@freedomn-m的介入,请毫不犹豫地直接编辑帖子并添加您的解释。 - Zakaria Acharki

0

function concate() {
    var s=document.getElementById("field").value;

    var t=document.getElementById("str2").value;

    var st=document.getElementById("str3").value;
    // this is a standard way to concatenate string in javascript
    var result = s+t;
    document.getElementById("str3").value=result;

}
<input type="text" id="field"><br>
<input type="text" id="str2"><br>
<input type="text" id="str3" readonly><br>
<button onclick="concate()">Concatenate</button>


为什么你使用concat而不是+ - Qwertiy
这不是JavaScript中连接字符串的标准方式。 - freedomn-m
.concat() 用于数组,对于字符串则使用 +。 - Patrick Aleman
也许我应该删除这个答案吗? - Transformer
@Transformer你可以参考这个链接:https://dev59.com/LmQo5IYBdhLWcg3wV-Qx - Vincent1989
如果没有今天,我不会看到区别。 - Transformer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接