Reputation: 29
$('#fastbill').click(function(){
if ($('#changevaluebill').attr('checked','true')){
$('#changevaluebill').attr("value","Recharge Now");
}
else {
$('#changevaluebill').attr("value","Proceed");
}
});
The checkbox condition is not working.
Upvotes: 1
Views: 1015
Reputation: 12213
There are many ways to check if either a checkbox is checked
You can use is(':checked')
Try:
$('#fastbill').click(function(){
if($('#changevaluebill').is(':checked')){
$('#changevaluebill').val("Recharge Now");
} else {
$('#changevaluebill').val("Proceed");
}
});
Other ways could be:
$('#changevaluebill').prop('checked')
// Boolean
$('#changevaluebill:checked').length
// Integer >0
$('#changevaluebill:checked').size()
// .size() can be used instead of .length
$('#changevaluebill').get(0).checked
// Boolean true
$('#changevaluebill')[0].checked
// Boolean true (same as above)
Upvotes: 2
Reputation: 388316
As others has said, you need to can use .is()
and :checked
.
But you should use .val() to set the value of an input field
$('#fastbill').click(function () {
$('#changevaluebill').val(function () {
return this.checked ? 'Recharge Now' : 'Proceed'
});
});
Upvotes: 1
Reputation: 218877
This isn't doing what you think:
$('#changevaluebill').attr('checked','true')
That doesn't determine if the value it 'true'
, it sets the value to 'true'
. You can use the .is()
function to conditionally check an aspect of the element. Something like this:
$('#changevaluebill').is(':checked')
Upvotes: 1