javascript - 如何使用 Javascript 交织文本框中的输入

标签 javascript html

所以,这是我在这里发表的第一篇文章,我对编码总体来说还很陌生,所以请耐心等待。我试图从两个不同的文本框获取用户输入,并在单击按钮后将它们交织在一起。因此,如果用户在第一个文本框中输入“abcd”,在第二个文本框中输入“1234”,则最后一个文本框中的结果将是“a1b2c3d4”。这是我的代码:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <label>Enter Text Here:</label>
    <input id="userInput1" type="text" />
    <label>Enter Text Here:</label>
    <input id="userInput2" type="text" />
    <button id="myBTN" type="button">Try it</button>
    <label for="output">Result: </label><input id="output" type="text"/>
    <script type="text/javascript" src="jscript.js"></script>
</body>
</html>

还有我的 JavaScript:

var myButton = document.getElementById("myBTN");
myButton.addEventListener("click", merge);
function merge() {
  var a = document.getElementById("userInput1").value;
  var b = document.getElementById("userInput2").value;
  var aMod = a.split("");
  var bMod = b.split("");
  var c = ""
  for (i=0; i < aMod || i < bMod; i++)  {
    if (i < aMod)
    c += aMod[i];
    if (i < bMod)
    c += bMod[i];
  }
  return c;
  document.getElementbyId("output").value = "c";
}

当我尝试执行它时,我没有收到任何错误,但当我单击按钮时,什么也不会发生。如有任何帮助,我们将不胜感激。

最佳答案

您的脚本存在一些问题,这对于初学者来说是很自然的,所以不要灰心。

<小时/>

缺少分号

在 JavaScript 的第 8 行,你的谎言并没有以分号结束。我相信这不是 Javascript 中的关键问题,但这确实是一个很好的实践。

缺少变量

for 循环中,您使用变量 i 而无需先声明它 ( var )。这意味着 i 是在全局范围内声明的,这可能会导致意外的行为。

将 aMod 和 bMod 视为整数,而不是数组

您的变量aModbMod是数组,而不是整数。为了将它们与 i 进行比较,您需要比较它们的 .length

您包含了一个会破坏程序流程的 return 语句

如果您要返回稍后使用的值,则仅需要 return 语句。由于函数 merge() 将值 c 分配给最后一行中的元素 output,因此您不需要 return 语句。

getElementById 区分大小写

在最后一行中,您编写了 getElementbyId 而不是 getElementById(注意字母 B)

您正在分配值“c”而不是变量c

还在最后一行中,您将字符串值“c”分配给元素output,而不是变量c

<小时/>

总之,此代码演示了上述更改:

var myButton = document.getElementById("myBTN");
myButton.addEventListener("click", merge);
function merge() {
    var a = document.getElementById("userInput1").value;
    var b = document.getElementById("userInput2").value;
    var aMod = a.split("");
    var bMod = b.split("");
    var c = "";
    for (var i = 0; i < Math.max(aMod.length, bMod.length); i++)  {
        if (i < aMod.length)
            c += aMod[i];
        if (i < bMod.length)
            c += bMod[i];
    }

    document.getElementById("output").value = c;
}

关于javascript - 如何使用 Javascript 交织文本框中的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47896981/

相关文章:

javascript - 从 Accordion 弹出中删除奇怪的故障

javascript - jQuery Table sorter float 距离排序

javascript - Bootstrap 导航栏项目根据文件名处于事件状态?

javascript - 在 node.js 中保持服务器客户端响应连接打开并处于事件状态是否不好?

html - 你能有一个 Style 并将所有 CSS 代码放在里面吗?

javascript - 指定javascript的src路径

javascript - 为什么我不能链接这一系列的 lodash 调用?

javascript - javascript @param 和@return 注释中的感叹号表示什么?

javascript - 将元素滚动到容器内的 View 中,但不在浏览器窗口中

html - 自动扩展背景图像