我想将多个字段传递给jquery以进行检查,例如,但是我仅获取传递给jquery的更改字段的值,如何将两个字段都传递给jquery

Enter some text:
<input type="text" name="txt1" value="Hello" onchange="myFunction(this.value)">
<input type="text" name="txt2" value="Hello" onchange="myFunction(this.value)">


<script>
function myFunction(txt1, txt2) {
  alert("The input value has changed. The new value is: " + txt1 + txt2);
}
</script>

最佳答案

您不工作的原因是由于此this上下文,它表示已更改的项目。您可以从该输入内部访问它。

但是,您可以通过其他方式访问它们,例如getElementsByName

function myFunction() {
    let text1 = document.getElementsByName('txt1')[0].value;
    let text2 = document.getElementsByName('txt2')[0].value;
    alert("The input value has changed. The new value is: " + txt1 + txt2);
}

<input type="text" name="txt1" value="Hello" onchange="myFunction()">
<input type="text" name="txt2" value="Hello" onchange="myFunction()">


我现在通过名称选择了它。如果您仅打算通过javascript使用它,建议您删除name属性并改用id。然后,您可以将getElementsByName('txt1')[0]替换为getElementsById('txt1'),这样阅读起来会更干净一些,并且(略)更快。



如果您想提高一点:将事件处理程序直接添加到输入中,而是将它们挂接起来不是标准做法。

<input id="txt1" value="Hello" /> <!-- type=text is the default type, you can ommit it -->
document.getElementById('text1').onchange = myFunction;

10-05 19:47