หากทำเครื่องหมายที่ช่องทำเครื่องหมายฉันจะต้องรับค่าเป็น 1 เท่านั้น มิฉะนั้นฉันต้องได้มันเป็น 0 ฉันจะใช้ jQuery ได้อย่างไร
$("#ans").val()
จะให้สิทธิ์ฉันเสมอในกรณีนี้:
<input type="checkbox" id="ans" value="1" />
หากทำเครื่องหมายที่ช่องทำเครื่องหมายฉันจะต้องรับค่าเป็น 1 เท่านั้น มิฉะนั้นฉันต้องได้มันเป็น 0 ฉันจะใช้ jQuery ได้อย่างไร
$("#ans").val()
จะให้สิทธิ์ฉันเสมอในกรณีนี้:
<input type="checkbox" id="ans" value="1" />
คำตอบ:
ใช้.is(':checked')
เพื่อตรวจสอบว่ามีการตรวจสอบหรือไม่แล้วตั้งค่าของคุณตามนั้น
$("#ans").attr('checked')
จะแจ้งให้คุณทราบหากมีการตรวจสอบ นอกจากนี้คุณยังสามารถใช้พารามิเตอร์ตัวที่สองเป็น true / false เพื่อตรวจสอบ / ยกเลิกการเลือกช่องทำเครื่องหมาย
$("#ans").attr('checked', true);
ตามความคิดเห็นใช้prop
แทนattr
เมื่อมี เช่น:
$("#ans").prop('checked')
เพียงแค่ใช้ $(selector).is(':checked')
มันจะส่งกลับค่าบูลีน
// use ternary operators
$("#ans").is(':checked') ? 1 : 0;
คำตอบของ Stefan Brinkmann นั้นยอดเยี่ยม แต่ไม่สมบูรณ์สำหรับผู้เริ่มต้น (ละเว้นการกำหนดตัวแปร) เพียงชี้แจง:
// this structure is called a ternary operator
var cbAns = ( $("#ans").is(':checked') ) ? 1 : 0;
มันได้ผลเช่นนี้:
var myVar = ( if test goes here ) ? 'ans if yes' : 'ans if no' ;
ตัวอย่าง:
var myMath = ( 1 > 2 ) ? 'yes' : 'no' ;
alert( myMath );
การแจ้งเตือน 'ไม่'
หากสิ่งนี้มีประโยชน์โปรดโหวตคำตอบของ Stefan Brinkmann
คุณสามารถลองสิ่งนี้:
$('#studentTypeCheck').is(":checked");
ฉันพบปัญหาเดียวกันก่อนหน้านี้หวังว่าโซลูชันนี้จะช่วยคุณได้ ก่อนอื่นให้เพิ่มแอตทริบิวต์ที่กำหนดเองลงในช่องทำเครื่องหมายของคุณ:
<input type="checkbox" id="ans" value="1" data-unchecked="0" />
เขียนนามสกุล jQuery เพื่อรับค่า:
$.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;
}
};
ใช้รหัสเพื่อรับค่ากล่องกาเครื่องหมาย:
$('#ans').realVal();
คุณสามารถทดสอบได้ที่นี่
$('input:checkbox:checked').val(); // get the value from a checked checkbox
<input type="checkbox" id="ans" value="1" />
Jquery:
var test= $("#ans").is(':checked')
และมันจะคืนจริงหรือเท็จ
ในการทำงานของคุณ:
$test =($request->get ( 'test' )== "true")? '1' : '0';
คุณยังสามารถใช้:
$("#ans:checked").length == 1;
ใช้:
$("#ans option:selected").val()
return
1
ถ้ามันถูกเลือก
function chkb(bool){
if(bool)
return 1;
return 0;
}
var statusNum=chkb($("#ans").is(':checked'));
สถานะตัวเลขจะเท่ากับ 1 หากทำเครื่องหมายที่ช่องทำเครื่องหมายและ 0 ถ้าไม่ได้ทำเครื่องหมาย
แก้ไข: คุณสามารถเพิ่ม DOM เข้ากับฟังก์ชันได้เช่นกัน
function chkb(el){
if(el.is(':checked'))
return 1;
return 0;
}
var statusNum=chkb($("#ans"));
เมื่อเร็ว ๆ นี้ฉันได้พบกรณีที่ฉันต้องการตรวจสอบค่าของช่องทำเครื่องหมายเมื่อผู้ใช้คลิกที่ปุ่ม วิธีที่เหมาะสมในการทำเช่นนั้นคือการใช้prop()
แอตทริบิวต์
var ansValue = $("#ans").prop('checked') ? $("#ans").val() : 0;
สิ่งนี้ใช้ได้ในกรณีของฉันบางทีอาจมีบางคนต้องการมัน
เมื่อฉันได้พยายาม.attr(':checked')
มันกลับมาchecked
แต่ฉันต้องการค่าบูลีนและกลับค่าของแอตทริบิวต์.val()
value
มีหลายตัวเลือกเช่น ....
1. $("#ans").is(':checked')
2. $("#ans:checked")
3. $('input:checkbox:checked');
หากตัวเลือกทั้งหมดเหล่านี้คืนค่าเป็นจริงคุณสามารถกำหนดค่าได้อย่างแน่นอน
ลองสิ่งนี้
$('input:checkbox:checked').click(function(){
var val=(this).val(); // it will get value from checked checkbox;
})
ที่นี่การตั้งค่าสถานะเป็นจริงหากเลือกอย่างอื่นเป็นเท็จ
var flag=$('#ans').attr('checked');
อีกครั้งนี้จะทำให้ cheked
$('#ans').attr('checked',true);
$("#id").prop('checked') === true ? 1 : 0;
คุณสามารถรับค่า (จริง / เท็จ) โดยทั้งสองวิธี
$("input[type='checkbox']").prop("checked");
$("input[type='checkbox']").is(":checked");
ก่อนตรวจสอบค่าการตรวจสอบ
$("#ans").find("checkbox").each(function(){
if ($(this).prop('checked')==true){
var id = $(this).val()
}
});
ชุดอื่น0ค่า
หากคุณต้องการตรวจสอบค่าจำนวนเต็มหรือไม่ลอง:
$("#ans:checked").length
คุณสามารถทำได้ด้วยวิธีนี้:
$('input[id=ans]').is(':checked');