Nếu hộp kiểm được chọn, thì tôi chỉ cần lấy giá trị là 1; mặt khác, tôi cần lấy nó là 0. Làm cách nào để sử dụng jQuery?
$("#ans").val()
sẽ luôn cho tôi một quyền trong trường hợp này:
<input type="checkbox" id="ans" value="1" />
Nếu hộp kiểm được chọn, thì tôi chỉ cần lấy giá trị là 1; mặt khác, tôi cần lấy nó là 0. Làm cách nào để sử dụng jQuery?
$("#ans").val()
sẽ luôn cho tôi một quyền trong trường hợp này:
<input type="checkbox" id="ans" value="1" />
Câu trả lời:
Sử dụng .is(':checked')
để xác định xem nó có được kiểm tra hay không và sau đó đặt giá trị của bạn cho phù hợp.
Chỉ dùng $(selector).is(':checked')
Nó trả về một giá trị boolean.
// use ternary operators
$("#ans").is(':checked') ? 1 : 0;
Câu trả lời của Stefan Brinkmann là tuyệt vời, nhưng không đầy đủ cho người mới bắt đầu (bỏ qua bài tập biến). Chỉ cần làm rõ:
// this structure is called a ternary operator
var cbAns = ( $("#ans").is(':checked') ) ? 1 : 0;
Nó hoạt động như thế này:
var myVar = ( if test goes here ) ? 'ans if yes' : 'ans if no' ;
Thí dụ:
var myMath = ( 1 > 2 ) ? 'yes' : 'no' ;
alert( myMath );
Cảnh báo 'không'
Nếu điều này hữu ích, vui lòng nêu lên câu trả lời của Stefan Brinkmann.
Bạn có thể thử điều này:
$('#studentTypeCheck').is(":checked");
Tôi đã tìm thấy vấn đề tương tự trước đây, hy vọng giải pháp này có thể giúp bạn. đầu tiên, thêm một thuộc tính tùy chỉnh vào hộp kiểm của bạn:
<input type="checkbox" id="ans" value="1" data-unchecked="0" />
viết một phần mở rộng jQuery để nhận giá trị:
$.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;
}
};
sử dụng mã để nhận giá trị hộp kiểm:
$('#ans').realVal();
bạn có thể kiểm tra ở đây
Bạn cũng có thể dùng:
$("#ans:checked").length == 1;
Sử dụng:
$("#ans option:selected").val()
return
1
đó nếu nó được chọn
function chkb(bool){
if(bool)
return 1;
return 0;
}
var statusNum=chkb($("#ans").is(':checked'));
statusNum sẽ bằng 1 nếu hộp kiểm được chọn và 0 nếu không.
EDIT: Bạn cũng có thể thêm DOM vào chức năng.
function chkb(el){
if(el.is(':checked'))
return 1;
return 0;
}
var statusNum=chkb($("#ans"));
Gần đây tôi đã gặp một trường hợp mà tôi cần kiểm tra giá trị của hộp kiểm khi người dùng nhấp vào nút. Cách thích hợp duy nhất để làm như vậy là sử dụng prop()
thuộc tính.
var ansValue = $("#ans").prop('checked') ? $("#ans").val() : 0;
Điều này làm việc trong trường hợp của tôi có lẽ ai đó sẽ cần nó.
Khi tôi đã thử .attr(':checked')
nó trả về checked
nhưng tôi muốn giá trị boolean và .val()
giá trị trả về của thuộc tính value
.
Có một số tùy chọn có như ....
1. $("#ans").is(':checked')
2. $("#ans:checked")
3. $('input:checkbox:checked');
Nếu tất cả các tùy chọn này trở về đúng thì bạn có thể đặt giá trị theo cách phù hợp.
Thử cái này
$('input:checkbox:checked').click(function(){
var val=(this).val(); // it will get value from checked checkbox;
})
Ở đây cờ là đúng nếu được chọn nếu không sai
var flag=$('#ans').attr('checked');
Một lần nữa điều này sẽ làm cho cheked
$('#ans').attr('checked',true);
$("#id").prop('checked') === true ? 1 : 0;
Đầu tiên kiểm tra giá trị được kiểm tra
$("#ans").find("checkbox").each(function(){
if ($(this).prop('checked')==true){
var id = $(this).val()
}
});
Khác đặt giá trị 0
Bạn có thể thực hiện nó, theo cách này:
$('input[id=ans]').is(':checked');