我的MVC应用程序中有一个textarea,在这里我正在实现AspNetSpellCheck,调试器告诉我,textarea更改为display: none; visibility: hidden;,而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">发布于 2012-10-04 16:37:01
如果您不知道文本区域中的值何时被更改,则可以使用setInterval监视更改
Eg
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);发布于 2012-10-04 16:30:47
对于隐藏的值,您需要自己触发更改事件ala:
$('#hiddenInput').val('newval').trigger('change');发布于 2012-10-04 16:32:08
试试这个..。自己触发事件
$('input[type="hidden"]').change(function() {
alert('hi');
// somethingChanged = true;
});
$('#useid').val("20").change();小提琴
https://stackoverflow.com/questions/12731647
复制相似问题