我的表單中有一些複選框,當選中該複選框時,我需要更改它們的值。通過jQuery更改複選框的值
例如,這是其中一個複選框:
<input type="checkbox" name="drink" value=""/>
我知道.val()
可以改變它,但我沒能與if
語句來做到這一點。
我很欣賞你的回答。
我的表單中有一些複選框,當選中該複選框時,我需要更改它們的值。通過jQuery更改複選框的值
例如,這是其中一個複選框:
<input type="checkbox" name="drink" value=""/>
我知道.val()
可以改變它,但我沒能與if
語句來做到這一點。
我很欣賞你的回答。
// attach an onchange handler to all checkboxes on the page
$("input[type='checkbox']").change(function() {
// or if($(this).prop("checked")) {
if(this.checked) {
$(this).val("value for checked");
} else {
$(this).val("value for unchecked");
}
});
onchange
事件是一個你應該感興趣,當談到複選框,因爲無論何時改變它的選中狀態觸發。checked
屬性確定複選框是否已被選中。.val()
方法允許您方便地讀取/寫入元素值。謝謝Karim,你的回答救了我。 – Nima
您可以在複選框添加點擊事件監聽器:
$('input[name="drink"]').click(function() { // when click on it
if ($(this).attr('checked')) { // if the checkbox is checked
$(this).val("value #1"); // change the value
} else { // otherwise if is unchecked
$(this).val("value #2"); // change the value
}
});
更好地將偵聽器附加到'change'事件。複選框的狀態也可以通過鍵盤進行更改,但您的代碼無法捕獲。 –
你所追求其實是很沒有意義的。請參閱提交表單時僅檢查複選框實際發送值,因此更改該值尤其是對於未選中的複選框沒有任何意義。
而應該給它一個「檢查」的值,並保持這種狀態,這將導致它正確提交即使不改變的值。
我沒有解釋我的目的,我只問了我錯過的部分來完成我的項目。其他答案解決了我的問題。感謝您的答覆。 – Nima
正在檢查的複選框會更改哪個複選框?你的問題缺乏細節 – 2011-08-17 20:45:25