我的表单中有一些复选框,当选中该复选框时,我需要更改它们的值。通过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