我想使用jQuery查看三个文本框是否被更改,以便我可以通过
AJAX发送数据.
我试过一个简单的脚本:
$("#name,#position,#salary").change(function() { console.log("All data are changed"); });
姓名,职位和工资是三个文本框的相应ID.
结果是当我改变第一个:
当我改变第二个:
这里是第三个:
所以,当单独的文本框被更改时,我有消息.我所需要的是当三个更改时,显示消息.我是jQuery的新手,所以我想知道我是否可以在jQuery中使用像IF … AND … AND这样的东西.
解决方法
一旦用户更改了值,许多验证框架就有一个脏输入的概念.您可以实现这一点,并检查所有字段是否脏.
$("#name,#salary").change(function() { this.classList.add("dirty"); if ($(".dirty").length === 3) { console.log("All data are changed"); } });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input id="name" /> <input id="position" /> <input id="salary" />
我们可以将其抽象为一个jQuery插件,以便重新使用
$.fn.allChange = function(callback) { var $elements = this; $elements.change(function() { this.classList.add("dirty"); if (callback && $elements.filter(".dirty").length === $elements.length) { callback.call($elements); } }); return $elements; } $("#name,#salary").allChange(function() { console.log("All data are changed"); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input id="name" /> <input id="position" /> <input id="salary" />