通过编程改变输入字段的值来执行一些任务
programatically changing value in input field perform some task
HTML
<input id="testinput" type="text"></input>
JS
$('#testinput').change(function (){
change();
});
function change(){
alert();
}
$('#testinput').val('new val');
链接通过输入输入并失去焦点,它可以工作,但如果输入字段的更改由jquery
触发,则不起作用。
From MDN:
为输入、选择和文本区域触发更改事件元素时,元素的值被修改用户。与输入事件不同,更改事件不是必需的
如果以编程方式更改该值,则需要手动触发change
事件。
我想如果你不愿意手动触发改变事件,你可以覆盖jQuery的val
($.fn.val
)方法来为你做:
var originalVal = $.fn.val;
$.fn.val = function() {
if(arguments.length) {
originalVal.apply(this, arguments);
this.trigger('change');
return this;
}
return originalVal.call(this);
}
http://jsfiddle.net/ybj1zjhk/4/将在您输入内容时触发警报
$('#testinput').keyup(function (){
change();
});
function change(){
alert();
}
$('#testinput').val('new val');
或者您可以在执行需要触发更改事件的操作时触发更改事件https://jsfiddle.net/owoemcg2/
$('#testinput').change(function (){
change();
});
function change(){
alert();
}
$("#mybutton").click(function(){
$('#testinput').val('new val');
$("#testinput").trigger("change");
});
相关文章:
- Gulp复制任务完成后如何执行通知
- 在 gruntjs 构建失败的情况下强制执行某些任务
- Meteor:排队任务中出现异常:错误:无法执行'removeChild'在'节点':要
- 在JS上使用JQuery执行简单任务的任何原因
- 如何在循环中对 es6 生成器执行异步任务
- 如何让一个按钮根据点击次数执行多个任务?(Javascript)
- JQuery - 在浏览器关闭事件时执行任务
- 在固定的时间间隔后定期执行相同任务的不同方法
- 选择多个项目以执行任务
- JavaScript - 在 setTimeout 之后根据值执行任务
- 无法使用grunt ssh在服务器上执行任务
- 否则,如果命令未执行任务
- Android Studio -执行任务app: packagerrelease失败
- 执行任务时,tab或enter按下表单输入文本与骨干/木偶
- 使用python cgi执行任务的任何方式
- 要查找的函数然后执行任务
- 通过forEach循环执行任务以复制具有数组长度的任务
- 在AngularJS中,如何在控制器中调用指令来执行任务
- 如果两个条件为真,我需要jQuery来执行任务
- Javascript函数在Google Chrome浏览器中执行任务失败