2012-01-25 22 views
3

我有一個複選框,並希望得到非常inital值或者換句話說獲得默認值,就像我們得到了一個文本框的默認值,如下所示:的jQuery JavaScript的獲取複選框的初始值

document.getElementById("myTextBoxID").defaultValue 

我想要做的任何使用jQuery/JS

document.getElementById("myChkBoxID").defaultValue 

所以,如果我從服務器獲取的第一次檢查一個複選框值類似的東西......現在,只要用戶更改複選框...我應該有辦法恢復到非常初始狀態

是否有可能

回答

0

使用defaultChecked屬性。

defaultCheckeddefaultValuedefined in DOM level 2如下:

defaultChecked布爾類型

當類型具有值「無線電」或「複選框」的,這代表了HTML檢查該元素的屬性 。如果交互式用戶代理中對應的表單控件的狀態發生更改,則此屬性的值不會更改。請參閱HTML 4.01中的選中的 屬性定義。

類型DOMString

當元件的類型屬性具有值「正文」,「文件」或「密碼」的默認值,這 表示元素的HTML value屬性。如果交互式用戶代理 中相應表單控件的內容發生更改,則此屬性的值不會更改爲 。請參閱HTML 4.01中的值屬性定義。

注意複選框確實有一個值的屬性,你可以改變,但它通常不是你想要的東西,並可能導致難以發現的錯誤...

的替代品:

由於您讓服務器設置初始值,因此可以包含隱藏的輸入字段,並讓服務器在其上設置初始狀態。

或者您可以reset整個表格。

+0

我不想使用隱藏字段...是否有可能使用javascript/jquery ??共振如果我有1000複選框與不同的值...我需要1000隱藏字段 – abbas

+0

查看更新的答案('defaultChecked') –

+0

準確地說,我需要....謝謝... grat man !!!謝謝..我會接受,當我被允許這樣做.. – abbas

0

只需將數據保存在頁面加載時:

$(function() { 
    $(':input').each(function() { 
    $(this).data('default', $(this).val()); 
    }); 
}); 

現在,對於任何<input />元素,你可以很容易地得到它的默認值:

$('#yourInputElement').data('default'); 

當你想要將元素重置爲其默認狀態,請再次撥打val()

$('#yourInputElement').val($('#yourInputElement').data('default')); 
+0

但我需要它不是一個文本框,一個複選框? – abbas

+0

這樣做更有意義。相反,勒米做。 – Blender

+0

完成。再次檢查我的答案。 – Blender

0

您需要以某種方式存儲默認值。在這種情況下,我認爲數據屬性是可以接受的。

//onload 
$('#textboxID, #checkboxID').each(function(){ 
    $(this).data('default', $(this).val()); 
}); 

//on reset 
$('#textboxID, #checkboxID').each(function(){ 
    $(this).val($(this).data('default')); 
});