2010-05-12 46 views
2

JQUERY中有一個標準方法(在文檔準備好時)將表單字段的原始值存儲在頁面上,以便檢查(稍後)字段是否真正更改?存儲表單字段原始值的JQUERY標準方式?

通常情況下,我會做這樣的事情:

var NameField = $("INPUT[name='NameField']"); 
//Record the original value. 
NameField.OriginalVal = NameField.val(); 

這是很簡單的,但我想知道的是有「標準」的方式來做到這一點。

編輯

一項的附加要求,我忘了是它需要爲所有類型的表單域,包括選擇和文字區域工作。

回答

13

的默認值(即這是在使用value屬性的源代碼中指定的值)可自動地作爲defaultValue屬性。

alert($("#myInput").defaultValue); 

More info at W3Schools

這似乎是JS規格從1.0所以它的安全使用的一部分。 (Reference,只有德語抱歉)

+0

很高興知道,如何使用這個:'$(「INPUT [name ='NameField']」)。defaultValue'? * edi * ok thx編輯:P – meo 2010-05-12 11:07:55

+0

@meo yup,這應該工作。 – 2010-05-12 11:08:40

+0

+1有趣的東西..根本不知道.. – 2010-05-12 11:31:44

0

另一種簡單的方法是在輸入控件的onchange事件上設置一個布爾變量。

i.e. var isFormValueChanged = false; 

$("INPUT[name='NameField']").bind("change", function() 
{ 
     isFormValueCanged = true; 
}); 
+1

感謝。這隻跟蹤onchange事件,它實際上並不測試值是否已更改。如果用戶將其改回,我們想知道該值是否與原始值相同。 – 2010-05-12 11:11:19

1

沒有標準的方法來存儲原始值。

jQuery不會有更好的方式來存儲值比你的例子:

var NameField = $("INPUT[name='NameField']"); 
NameField.data('OriginalVal', NameField.val()); 
+0

-1因爲JavaScript已經存儲了原始值。見Pekkas的答案。 – Colin 2011-09-16 12:43:52

相關問題