我想将多个字段传递给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;