2

我有一个输入文本,需要在文本(值)更改时进行检测。该值可以通过两种方式更改:

  1. 允许用户在其中写入。
  2. 用户单击一个按钮,运行一个 jQuery 事件并用结果填充它。

对于我解决的第 1 项,keyup但对于第 2 项,我不知道如何检测文本何时更改。我尝试change()但不起作用。

4

5 回答 5

1

您可以.trigger()在填充输入的函数内部使用。

$("#idOfButton").click(function() {
    //do some stuff
    //fill input
    $("#edit").val("new stuff!").triggerHandler("keyup"); //<--Trigger keyup event
});

演示:http: //jsfiddle.net/Q8fCa/1

于 2013-05-29T14:06:09.363 回答
0

您可以创建一个间隔来检查输入字段的值是否在每种情况下(用户输入或按钮单击)都发生了变化:

var oldValue = $('#field').val();
var newValue = oldValue;

var checkInputFieldInterval = window.setInterval(function() {
    newValue = $('#field').val();
    if (newValue !== oldValue) {
        // VALUE CHANGED, DO STUFF
        oldValue = newValue;
    }
}, 100);

注意“100”是以毫秒为单位的间隔周期。您可以在此页面http://www.w3schools.com/jsref/met_win_setinterval.asp上找到有关 setInterval() 方法的更多信息

于 2013-05-29T14:17:15.580 回答
0

你可以做...

$('.name').on('keyup', function(){
  /* I'll run when the button is clicked or there's a keyup event. */
})

$('button').on('click', function(){
  $('.name').val('Bill').trigger('keyup');
})

这是一个快速演示:http: //jsbin.com/uteceb/1/edit

于 2013-05-29T14:24:02.280 回答
0

为 item2添加事件处理程序,change()并在 item1 keyup 处理程序中,触发 item2change()事件。就这么简单...

于 2013-05-29T14:05:18.967 回答
0

“运行一个 jQuery 事件并用结果填充它。”

您可以从您的 jquery 事件中调用另一个函数。

$('sel').click(function(){
textedited();  // call your new function. 
});
于 2013-05-29T14:07:13.713 回答