微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我在我的MVC应用程序中有一个textarea,我正在实现AspNetSpellCheck,调试器告诉我textarea更改为display:none;能见度:隐藏;并且生成一个div,其中id =“abc”和class“=”pqr“.
<input type="hidden" value="" name="userid" id="useid" />

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

var somethingChanged = false;
$(document).ready(function() { 
    $('input').change(function() { 
       somethingChanged = true; 
    }); 
});

因为文本区域变得隐藏,我想它不会自动触发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>

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

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

 <textarea id="TextArea1" style="display: none; visibility: hidden;" rows="2" cols="20">

解决方法

如果您不知道在textarea中何时更改了值,则可以使用setInterval来监视更改

例如

objTextBox = document.getElementById("TextArea1");
oldValue = objTextBox.value;
var somethingChanged = false;

function track_change()
   {
     if(objTextBox.value != oldValue)
     {
       oldValue = objTextBox.value;
       somethingChanged = true;
       alert("something has  Changed ")

});
     }

   }

setInterval(function() { track_change()},100);

原文地址:https://www.jb51.cc/jquery/177581.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐