如何检测隐藏输入字段的值更改

use*_*018 8 asp.net-mvc jquery

我有一个textarea在我正在实现的MVC应用程序中AspNetSpellCheck,调试器告诉我textareadisplay: none; visibility: hidden;和a 的更改div是用id="abc"和生成的class"="pqr".

<input type="hidden" value="" name="userid" id="useid" />
Run Code Online (Sandbox Code Playgroud)

此外,我正在为所有文本区域/其他控件实现更改检测....

var somethingChanged = false;
$(document).ready(function() { 
    $('input').change(function() { 
       somethingChanged = true; 
    }); 
});
Run Code Online (Sandbox Code Playgroud)

因为文本区域变得隐藏,我想它不会自动触发change()事件.在上述案例中解雇事件的解决方案是什么?谢谢!

编辑

使用AspNetSpellCheck,下面是我的代码,

  @{  

  ASPNetSpell.Razor.SpellAsYouType mySpell = new ASPNetSpell.Razor.SpellAsYouType();
   mySpell.InstallationPath = ("/Content/ASPNetSpellInclude");
   mySpell.FieldsToSpellCheck = "TextArea1";
}

<textarea id="TextArea1" cols="20" rows="2">bedddly</textarea>
@Html.Raw(mySpell.getHtml())

<script type="text/javascript" language="javascript">

$(document).ready(function () {
    $('input[type="hidden"]').change(function () {
        debugger;
        alert('hi');
        // somethingChanged = true; 
    });
});


 </script>
Run Code Online (Sandbox Code Playgroud)

调试器生成代码,隐藏文本区域和新的DIV结构,

 <div tabIndex="null" class="livespell_textarea" id="TextArea1___livespell_proxy">

 <textarea id="TextArea1" style="display: none; visibility: hidden;" rows="2" cols="20">
Run Code Online (Sandbox Code Playgroud)

use*_*361 15

使用隐藏值,您需要自己触发更改事件ala:

$('#hiddenInput').val('newval').trigger('change');
Run Code Online (Sandbox Code Playgroud)


Cha*_*amp 5

如果您不知道文本区域中的值何时更改,您可以使用它setInterval来监视更改

例如

  var objTextBox = document.getElementById("your_id");
  oldValue = objTextBox.value;

  function track_change() {
    if (objTextBox.value != oldValue) {
      oldValue = objTextBox.value;
      alert('value of input has changed');
    }
  }

  setInterval(function () {
    track_change()
  }, 1000);
Run Code Online (Sandbox Code Playgroud)