2010-07-05 153 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