Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以强制Jquery Dirtyform将表单视为脏表单吗?_Jquery_Forms - Fatal编程技术网

我可以强制Jquery Dirtyform将表单视为脏表单吗?

我可以强制Jquery Dirtyform将表单视为脏表单吗?,jquery,forms,Jquery,Forms,我们正在使用JQuery dirtyform插件向用户显示一条警告,如果用户更改表单数据并试图从页面中导航出去,那么该插件可以正常工作 我想做的另一件事是在页面第一次加载时强制表单变脏。我不知道如何做到这一点——我尝试使用javascript更改表单字段上的值,我尝试将“changed”类添加到表单字段中,但当我离开页面时,这两个类都不会触发警告对话框 有办法做到这一点吗 答复: $(document).ready(function() { $("form").dirty_form({in

我们正在使用JQuery dirtyform插件向用户显示一条警告,如果用户更改表单数据并试图从页面中导航出去,那么该插件可以正常工作

我想做的另一件事是在页面第一次加载时强制表单变脏。我不知道如何做到这一点——我尝试使用javascript更改表单字段上的值,我尝试将“changed”类添加到表单字段中,但当我离开页面时,这两个类都不会触发警告对话框

有办法做到这一点吗

答复:

$(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>