当我用按钮更改文本框的值时,我试图触发文本框上的更改事件,但它不起作用。检查这把小提琴。
如果在文本框中键入内容,然后单击其他地方,则会触发更改。但是,如果单击该按钮,文本框值将被更改,但不会触发更改。为什么?
当我用按钮更改文本框的值时,我试图触发文本框上的更改事件,但它不起作用。检查这把小提琴。
如果在文本框中键入内容,然后单击其他地方,则会触发更改。但是,如果单击该按钮,文本框值将被更改,但不会触发更改。为什么?
当前回答
我知道这是一个旧线程,但对于其他人来说,上面的解决方案可能不如下面的好,而不是检查更改事件,检查输入事件。
$("#myInput").on("input", function() {
// Print entered value in a div box
$("#result").text($(this).val());
});
其他回答
看起来事态并没有发酵。试试这个:
$("#mybutton").click(function(){
var oldval=$("#mytext").val();
$("#mytext").val('Changed by button');
var newval=$("#mytext").val();
if (newval != oldval) {
$("#mytext").trigger('change');
}
});
我希望这能有所帮助。
我尝试了一个普通的旧$("#mytext").trigger('change')而不保存旧值,即使值没有改变,.change也会触发。这就是为什么我保存了之前的值,并调用$("#mytext").trigger('change')仅当它发生变化时。
您可以使用attr和val方法,然后触发更改:
$('.parent-form').find('input').each(function() {
item = $(this);
item.attr('value', '0622-03-22');
item.val('01/01/01').trigger('change');
});
不,你可能需要在设置值后手动触发它:
$('#mytext').change();
or:
$('#mytext').trigger('change');
你需要像这样链接这个方法:
$('#input').val('test').change();
我知道这是一个旧线程,但对于其他人来说,上面的解决方案可能不如下面的好,而不是检查更改事件,检查输入事件。
$("#myInput").on("input", function() {
// Print entered value in a div box
$("#result").text($(this).val());
});