2011-04-29 69 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