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

Javascript 如何检测脚本何时更改输入文本中的值?,javascript,jquery,html,Javascript,Jquery,Html,我有一个输入文本,我需要在文本(值)更改时检测它。 可通过两种方式更改该值: 允许用户在其中写入 用户单击按钮,运行jQuery事件并用 结果 对于第1项,我使用keyup解决,但对于第2项,我不知道如何检测文本何时更改。 我尝试了change(),但不起作用。为item2在change()上添加事件处理程序,并在item1键控处理程序中触发item2change()事件。就像这样简单…您可以在函数中使用.trigger()填充输入 $("#idOfButton").click(function

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

  • 允许用户在其中写入
  • 用户单击按钮,运行jQuery事件并用 结果
  • 对于第1项,我使用
    keyup
    解决,但对于第2项,我不知道如何检测文本何时更改。
    我尝试了
    change()
    ,但不起作用。

    为item2在
    change()
    上添加事件处理程序,并在item1键控处理程序中触发item2
    change()
    事件。就像这样简单…

    您可以在函数中使用
    .trigger()
    填充输入

    $("#idOfButton").click(function() {
        //do some stuff
        //fill input
        $("#edit").val("new stuff!").triggerHandler("keyup"); //<--Trigger keyup event
    });
    
    $(“#idOfButton”)。单击(函数(){
    //做点什么
    //填充输入
    $(“#编辑”).val(“新东西!”).triggerHandler(“keyup”);//“运行jQuery事件并用结果填充它。”

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

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

    您可以创建一个间隔来检查输入字段的值是否在每次(用户输入或按钮单击)中都发生了更改:

    请注意,“100”是以毫秒为单位的间隔时间。您可以在此页面上找到有关setInterval()方法的更多信息。

    您可以

    $('.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');
    })
    

    这里有一个快速演示:

    为什么不在填充输入后调用额外的代码呢?你可以使用
    $(“#id”).trigger(“keyup”);
    他可能在使用一些库/小部件……你能更具体地说,什么类型的(jQuery)脚本是否响应事件以及结果是否是同步创建和填充的?很好,有四个答案,每个答案都建议一个完全不同的解决方案:)。想知道哪一个会起作用:)triggerHandler
    会起不到更好的作用,因为您不想让元素知道函数调用?
    $('.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');
    })