2010-07-05 107 views
1
<input type="checkbox" name="feature1" value="0" /> 

如果选中,value =“1”; else value =“0”;更新值基于:检查状态

if ($('input[name=feature1]').is(':checked')) { 
    $('input[name=feature1]').val('1'); 
} 

我觉得上面的jQuery可以工作,但它的一次性检查,我怎么让那个每次的复选框,单击/选中,值为1,否则为0?

非常感谢

回答

1
$('input[name=feature1]').click(function(){ 
    if ($(this).is(':checked')) { 
     $(this).val('1'); 
    } else { 
     $(this).val('0'); 
    } 
}); 

$('input[name=feature1]').click(function(){ 
    if (this.checked) { 
     $(this).val('1'); 
    } else { 
     $(this).val('0'); 
    } 
}); 

更好

$('input[name=feature1]').click(function(){ 
     $(this).val(this.checked ? 1:0); 
}); 

,只是因为我认为还有一个更好的方法..

$('input[name=feature1]').click(function(){ 
     this.value = this.checked ? 1:0;  
});​ 
+0

是的,但这是一次性检查,而不是切换。没有? – 3zzy 2010-07-05 13:36:29

+0

你抓到我编辑.. – Reigel 2010-07-05 13:38:24

+0

真棒,其作品就像一个魅力。只是想知道它是否会与多个元素$('一,二,三')..? – 3zzy 2010-07-05 13:44:31

1

我会给输入一个ID,只是为了让它更容易编写你的jQuery - 为了这个答案的目的,我会假装我们重复了这个名字。

jQuery("#feature1").click(function() { 
    if (this.checked) { 
     jQuery(this).val(1); 
    } else { 
     jQuery(this).val(0); 
    } 
}); 
+1

虽然有一个问题 - 为什么你需要设置一个值呢?如果您使用的是PHP,那么只有当复选框被选中时才会提交该值,您只需检查isset()以获取值。 – 2010-07-05 13:37:06