我可以强制Jquery Dirtyform将表单视为脏表单吗?
我们正在使用JQuery dirtyform插件向用户显示一条警告,如果用户更改表单数据并试图从页面中导航出去,那么该插件可以正常工作 我想做的另一件事是在页面第一次加载时强制表单变脏。我不知道如何做到这一点——我尝试使用javascript更改表单字段上的值,我尝试将“changed”类添加到表单字段中,但当我离开页面时,这两个类都不会触发警告对话框 有办法做到这一点吗 答复:我可以强制Jquery Dirtyform将表单视为脏表单吗?,jquery,forms,Jquery,Forms,我们正在使用JQuery dirtyform插件向用户显示一条警告,如果用户更改表单数据并试图从页面中导航出去,那么该插件可以正常工作 我想做的另一件事是在页面第一次加载时强制表单变脏。我不知道如何做到这一点——我尝试使用javascript更改表单字段上的值,我尝试将“changed”类添加到表单字段中,但当我离开页面时,这两个类都不会触发警告对话框 有办法做到这一点吗 答复: $(document).ready(function() { $("form").dirty_form({in
$(document).ready(function() {
$("form").dirty_form({includeHidden: true});
$("a").dirty_stopper();
$("#dummy").val("1");
$("#dummy").blur();
});
在html中:
<input type="hidden" name="dummy" id="dummy" value="0" />
您显然需要更改选择器,但我认为这正是您想要的。它只会在所选元素上触发jQuery的“更改”事件(脏表单正在侦听该事件)。您是否尝试将类“更改”应用于输入 每当输入值改变它时 将“更改”类添加到 它
我通过将此函数添加到插件中解决了此问题,而无需使用隐藏字段:
$.fn.set_form_dirty = function(){
$(this).data("dirty", true);
};
然后,我通过添加这段代码(在本例中,将页面上的所有表单设置为dirty),从我希望变脏的页面开始调用它:
$(文档).ready(函数(){
$(“form”).set_form_dirty();
});
@SteveT+1这是一个答案,以防在字段更改时插件需要执行其他操作。好答案@Kennis+1对两个答案@克雷格:如果是好的,就投票吧!(并努力获得体育精神徽章)不完全是,但你让我走上了正确的道路,谢谢。dirtyform使用模糊事件,现在可以在隐藏字段上侦听此事件,这正是我想要的。我在上面的解决方案中进行了编辑。也许我们在谈论不同的插件?我在读了你的问题()后发现的这个肯定使用change()而不是blur()。不管怎样,我很高兴你找到了解决办法。干杯。@SteveT hmmm…您使用的插件的链接是什么?您包含的文档来自同一个插件-但是将“更改”类添加到元素似乎不会使元素变脏。Hmm。。这对我来说不起作用,但是,也许插件已经随着时间的推移而改变了。看看我的答案,我必须做什么。
$.fn.set_form_dirty = function(){
$(this).data("dirty", true);
};
<script type="text/javascript">
$(document).ready(function() {
$("form").set_form_dirty();
});
</script>