通过编程改变输入字段的值来执行一些任务

programatically changing value in input field perform some task

本文关键字:执行 任务 编程 改变 输入 字段      更新时间:2023-09-26

HTML

<input id="testinput" type="text"></input>  

JS

$('#testinput').change(function (){
    change();
});
function change(){
    alert();
}
$('#testinput').val('new val');  

链接通过输入输入并失去焦点,它可以工作,但如果输入字段的更改由jquery触发,则不起作用。

$("# testinput")。瓦尔("新val").trigger("改变");不是必需的。

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");
});