问题
If the checkbox is checked, then I only need to get the value as 1; otherwise, I need to get it as 0. How do I do this using jQuery?
$("#ans").val()
will always give me one right in this case:
<input type="checkbox" id="ans" value="1" />
回答1:
Use .is(':checked')
to determine whether or not it's checked, and then set your value accordingly.
More information here.
回答2:
$("#ans").attr('checked')
will tell you if it's checked. You can also use a second parameter true/false to check/uncheck the checkbox.
$("#ans").attr('checked', true);
Per comment, use prop
instead of attr
when available. E.g:
$("#ans").prop('checked')
回答3:
Just use $(selector).is(':checked')
It returns a boolean value.
回答4:
// use ternary operators
$("#ans").is(':checked') ? 1 : 0;
回答5:
Stefan Brinkmann's answer is excellent, but incomplete for beginners (omits the variable assignment). Just to clarify:
// this structure is called a ternary operator
var cbAns = ( $("#ans").is(':checked') ) ? 1 : 0;
It works like this:
var myVar = ( if test goes here ) ? 'ans if yes' : 'ans if no' ;
Example:
var myMath = ( 1 > 2 ) ? 'yes' : 'no' ;
alert( myMath );
Alerts 'no'
If this is helpful, please upvote Stefan Brinkmann's answer.
回答6:
You can try this:
$('#studentTypeCheck').is(":checked");
回答7:
I've found the same problem before, hope this solution can help you. first, add a custom attribute to your checkboxes:
<input type="checkbox" id="ans" value="1" data-unchecked="0" />
write a jQuery extension to get value:
$.fn.realVal = function(){
var $obj = $(this);
var val = $obj.val();
var type = $obj.attr('type');
if (type && type==='checkbox') {
var un_val = $obj.attr('data-unchecked');
if (typeof un_val==='undefined') un_val = '';
return $obj.prop('checked') ? val : un_val;
} else {
return val;
}
};
use code to get check-box value:
$('#ans').realVal();
you can test here
回答8:
$('input:checkbox:checked').val(); // get the value from a checked checkbox
回答9:
<input type="checkbox" id="ans" value="1" />
Jquery :
var test= $("#ans").is(':checked')
and it return true or false.
In your function:
$test =($request->get ( 'test' )== "true")? '1' : '0';
回答10:
You can also use:
$("#ans:checked").length == 1;
回答11:
Use:
$("#ans option:selected").val()
回答12:
function chkb(bool){
if(bool)
return 1;
return 0;
}
var statusNum=chkb($("#ans").is(':checked'));
statusNum will equal 1 if the checkbox is checked, and 0 if it is not.
EDIT: You could add the DOM to the function as well.
function chkb(el){
if(el.is(':checked'))
return 1;
return 0;
}
var statusNum=chkb($("#ans"));
回答13:
I've came through a case recently where I've needed check value of checkbox when user clicked on button. The only proper way to do so is to use prop()
attribute.
var ansValue = $("#ans").prop('checked') ? $("#ans").val() : 0;
this worked in my case maybe someone will need it.
When I've tried .attr(':checked')
it returned checked
but I wanted boolean value and .val()
returned value of attribute value
.
回答14:
There are Several options are there like....
1. $("#ans").is(':checked')
2. $("#ans:checked")
3. $('input:checkbox:checked');
If all these option return true then you can set value accourdingly.
回答15:
Try this
$('input:checkbox:checked').click(function(){
var val=(this).val(); // it will get value from checked checkbox;
})
Here flag is true if checked otherwise false
var flag=$('#ans').attr('checked');
Again this will make cheked
$('#ans').attr('checked',true);
回答16:
$("#id").prop('checked') === true ? 1 : 0;
回答17:
You can get value (true/false) by these two method
$("input[type='checkbox']").prop("checked");
$("input[type='checkbox']").is(":checked");
回答18:
First check the value is checked
$("#ans").find("checkbox").each(function(){
if ($(this).prop('checked')==true){
var id = $(this).val()
}
});
Else set the 0 value
回答19:
If you want integer value of checked or not, try:
$("#ans:checked").length
回答20:
You can perform it, this way:
$('input[id=ans]').is(':checked');
来源:https://stackoverflow.com/questions/4813219/testing-if-a-checkbox-is-checked-with-jquery