2011-04-29 70 views
3

我们正在使用JQuery dirtyform插件向用户显示警告,如果他们更改表单数据并尝试从页面导航,并且运行良好。我可以强制Jquery Dirtyform查看表单为脏吗?

我想要做的一件事是在页面第一次加载时强制窗体变脏。我无法弄清楚如何做到这一点 - 我试图使用JavaScript来改变表单域的值,我尝试添加“更改”类来形成字段,但是当我导航时,这些都不会触发警告对话框远离页面。

有没有办法做到这一点?

答:

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

回答

4
$("#myFormID").find("input").change(); 

显然需要改变的选择,但我认为这是你想要的。它只会触发jQuery的“更改”事件(这是Dirty Form正在侦听的内容)。

+0

@SteveT +1这个答案,以防插件需要做任何事情时,一个领域的变化。好答案@Kennis – Craig 2011-04-29 01:32:28

+0

+1两个答案。 @克雷格:如果它不错,赶快行动吧! (并致力于体育精神徽章;) – Aleadam 2011-04-29 01:35:28

+0

@Aleadam哈哈,谢谢! – Craig 2011-04-29 01:36:40

1

您是否尝试将“更改”类应用于输入?

每当输入值更改它 会得到“改为”类加 它

+0

是的,但这并不适合我。 – SteveT 2011-04-29 01:58:22

+0

@SteveT嗯......什么是你使用的插件的链接? – Craig 2011-04-29 12:31:32

+0

它位于http://plugins.jquery.com/project/dirtyform – SteveT 2011-04-29 21:08:47

2

我解决了这个,而无需通过增加此功能插件使用隐藏域:

$.fn.set_form_dirty = function(){ 
    $(this).data("dirty", true); 
}; 

然后我通过添加这段代码(在这种情况下,将页面上的所有表单设置为脏)来从我想要变脏的页面中调用该页面:

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("form").set_form_dirty(); 
    }); 
</script> 
+0

嗯..这不适合我,但是,也许插件已经随着时间的推移而改变。看我的答案,我必须做的。 – bkwdesign 2014-03-06 16:21:45