如何检测脚本中输入文本中的值何时更改?

时间:2013-05-29 14:02:45

标签: javascript jquery html

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

  1. 允许用户写入。
  2. 用户单击一个按钮,运行一个jQuery事件并填充它 结果
  3. 对于项目1我使用keyup解决了但是对于项目2我不知道如何检测文本何时被更改。 我尝试change()但不起作用。

5 个答案:

答案 0 :(得分:1)

您可以在功能中使用.trigger()来填充输入。

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

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

答案 1 :(得分:0)

change()上为item2和item1 keyup处理程序添加事件处理程序,触发item2 change()事件。很简单......

答案 2 :(得分:0)

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

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

$('sel').click(function(){
textedited();  // call your new function. 
});

答案 3 :(得分: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”是以ms为单位的间隔时间。您可以在此页面http://www.w3schools.com/jsref/met_win_setinterval.asp

上找到有关setInterval()方法的更多信息

答案 4 :(得分: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