2014-10-01 96 views
1
$('#fastbill').click(function(){ 
    if ($('#changevaluebill').attr('checked','true')){ 
     $('#changevaluebill').attr("value","Recharge Now"); 
    } 
    else { 
     $('#changevaluebill').attr("value","Proceed"); 
    } 
}); 

複選框條件不起作用。基於複選框的條件功能是否被檢查

+0

'$( '#changevaluebill')。VAL(函數(){ 回報this.checked?「立即充值':'繼續' });' – 2014-10-01 13:11:27

回答

2

有很多方法來檢查,如果無論是複選框被選中

您可以使用is(':checked')

嘗試:

$('#fastbill').click(function(){ 
    if($('#changevaluebill').is(':checked')){ 
    $('#changevaluebill').val("Recharge Now"); 
    } else { 
    $('#changevaluebill').val("Proceed"); 
    } 
}); 

其他方式可以是:

$('#changevaluebill').prop('checked') //布爾
$('#changevaluebill:checked').length // Integer> 0
$('#changevaluebill:checked').size() // .size()可用於代替的。長度
$('#changevaluebill').get(0).checked //布爾真
$('#changevaluebill')[0].checked //布爾真(與上述相同)

Reference

+0

thnxxx很多....... itz工作 – 2014-10-01 13:31:29

1

此沒有做你在想什麼:

$('#changevaluebill').attr('checked','true') 

這並不如果值是確定0,它設置的值爲'true'。您可以使用the .is() function有條件地檢查元素的某個方面。事情是這樣的:

$('#changevaluebill').is(':checked') 
+0

我試過了,但它也沒有工作 – 2014-10-01 13:12:00

+0

@muqeemkhan:你能更具體嗎?當你在瀏覽器中調試它時,它在哪裏以及如何明確地失敗?代碼是否被調用? jQuery選擇器能夠找到你期望的元素嗎?邏輯如何進展? – David 2014-10-01 13:17:23

1

正如其他人所說,你需要可以使用.is():checked

但是,你應該使用.VAL()來設置輸入字段的值

$('#fastbill').click(function() { 
    $('#changevaluebill').val(function() { 
     return this.checked ? 'Recharge Now' : 'Proceed' 
    }); 
});