checkbox
ฉันมีปัญหากับยกเลิกการเลือก ดูjsFiddle ของฉันที่ฉันพยายาม:
$("#check2").attr("checked", true);
ผมใช้เครื่องแบบสำหรับจัดแต่งทรงผมcheckbox
และมันก็ไม่ได้ทำงานเพื่อตรวจสอบ / ยกเลิกcheckbox
ความคิดใด ๆ
checkbox
ฉันมีปัญหากับยกเลิกการเลือก ดูjsFiddle ของฉันที่ฉันพยายาม:
$("#check2").attr("checked", true);
ผมใช้เครื่องแบบสำหรับจัดแต่งทรงผมcheckbox
และมันก็ไม่ได้ทำงานเพื่อตรวจสอบ / ยกเลิกcheckbox
ความคิดใด ๆ
คำตอบ:
ดูเอกสารของพวกเขาพวกเขามี$.uniform.update
คุณสมบัติในการรีเฟรชองค์ประกอบ "ชุด"
ตัวอย่าง: http://jsfiddle.net/r87NH/4/
$("input:checkbox").uniform();
$("body").on("click", "#check1", function () {
var two = $("#check2").attr("checked", this.checked);
$.uniform.update(two);
});
1.4.4
แต่ลิงก์ไปยังไฟล์ js และ css นั้นใช้งานไม่ได้ นี่คือซอที่อัพเดท หากคุณหมายความว่ามันจะมีปัญหาเฉพาะใน1.6
แล้วว่าอาจจะจริงตั้งแต่ jQuery .attr()
แล้วเปลี่ยนพฤติกรรมของหวนกลับ เมื่อใช้งาน1.6
หรือสูงกว่าคุณควรใช้งาน.prop()
จริง
วิธีแก้ปัญหาที่ง่ายกว่าคือการทำเช่นนี้แทนที่จะใช้เครื่องแบบ:
$('#check1').prop('checked', true); // will check the checkbox with id check1
$('#check1').prop('checked', false); // will uncheck the checkbox with id check1
นี่จะไม่ทริกเกอร์การกระทำการคลิกใด ๆ ที่กำหนดไว้
คุณยังสามารถใช้:
$('#check1').click(); //
การดำเนินการนี้จะสลับการทำเครื่องหมาย / ไม่เลือกสำหรับช่องทำเครื่องหมาย แต่สิ่งนี้จะทริกเกอร์การคลิกใด ๆ ที่คุณกำหนดไว้ ดังนั้นระวัง
แก้ไข : jQuery 1.6+ prop()
ไม่ใช้attr()
สำหรับช่องทำเครื่องหมายค่าที่เลือก
$("#chkBox").attr('checked', false);
สิ่งนี้ใช้ได้สำหรับฉันนี่จะเป็นการยกเลิกการเลือกกล่องกาเครื่องหมาย ในทำนองเดียวกันเราสามารถใช้
$("#chkBox").attr('checked', true);
เพื่อตรวจสอบช่องทำเครื่องหมาย
หากคุณกำลังใช้ชุด 1.5แล้วใช้เคล็ดลับง่าย ๆ นี้เพื่อเพิ่มหรือลบคุณลักษณะของการตรวจสอบ
เพียงแค่เพิ่มค่า = "ตรวจสอบ" ในช่องใส่ของช่องทำเครื่องหมายของคุณ
เพิ่มรหัสนี้ในuniform.js
> function doCheckbox(elem){
>.click(function(){
if ( $(elem+':checked').val() == 'check' ) {
$(elem).attr('checked','checked');
}
else {
$(elem).removeAttr('checked');
}
หากคุณไม่ต้องการเพิ่ม value = "check" ในกล่องใส่ข้อมูลของคุณเพราะในบางกรณีคุณเพิ่มช่องทำเครื่องหมายสองช่องเพื่อใช้สิ่งนี้
if ($(elem).is(':checked')) {
$(elem).attr('checked','checked');
}
else
{
$(elem).removeAttr('checked');
}
หากคุณใช้เครื่องแบบ 2.0 ให้ใช้เคล็ดลับง่าย ๆ นี้เพื่อเพิ่มหรือลบคุณลักษณะของการตรวจสอบ
ในclassUpdateChecked($tag, $el, options) {
การเปลี่ยนแปลงฟังก์ชั่นนี้
if ($el.prop) {
// jQuery 1.6+
$el.prop(c, isChecked);
}
ถึง
if ($el.prop) {
// jQuery 1.6+
$el.prop(c, isChecked);
if (isChecked) {
$el.attr(c, c);
} else {
$el.removeAttr(c);
}
}
$('#check1').prop('checked', true).uniform();
$('#check1').prop('checked', false).uniform();
สิ่งนี้ใช้ได้สำหรับฉัน
แค่ทำสิ่งนี้:
$('#checkbox').prop('checked',true).uniform('refresh');
คุณต้องโทร$.uniform.update()
หากคุณอัปเดตองค์ประกอบโดยใช้ javascript ตามที่ระบุไว้ในเอกสารประกอบ
ประการแรกchecked
สามารถมีค่าchecked
หรือสตริงว่าง
$("input:checkbox").uniform();
$('#check1').live('click', function() {
$('#check2').attr('checked', 'checked').uniform();
});
checked
ไม่มีอะไรผิดปกติกับการส่งผ่านบูลเป็นค่าของ
HTMLInputElement
เรากำลังตั้งค่าคุณสมบัติในการ ลองดูที่checked
สถานที่ให้บริการ
ในบางกรณีคุณสามารถใช้สิ่งนี้:
$('.myInput').get(0).checked = true
สำหรับการสลับคุณสามารถใช้ถ้ามีฟังก์ชั่น
$("#checkall").change(function () {
var checked = $(this).is(':checked');
if (checked) {
$(".custom-checkbox").each(function () {
$(this).prop("checked", true).uniform();
});
} else {
$(".custom-checkbox").each(function () {
$(this).prop("checked", false).uniform();
});
}
});
// Changing state of CheckAll custom-checkbox
$(".custom-checkbox").click(function () {
if ($(".custom-checkbox").length == $(".custom-checkbox:checked").length) {
$("#chk-all").prop("checked", true).uniform();
} else {
$("#chk-all").removeAttr("checked").uniform();
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" id='checkall' /> Select All<br/>
<input type="checkbox" class='custom-checkbox' name="languages" value="PHP"> PHP<br/>
<input type="checkbox" class='custom-checkbox' name="languages" value="AngularJS"> AngularJS<br/>
<input type="checkbox" class='custom-checkbox' name="languages" value="Python"> Python<br/>
<input type="checkbox" class='custom-checkbox' name="languages" value="Java"> Java<br/>
วิธีอื่นในการทำคือ
ใช้ $('#check2').click();
สิ่งนี้ทำให้เกิดการตรวจสอบช่องทำเครื่องหมายและอัปเดตมาสก์
ช่องทำเครื่องหมายที่ทำหน้าที่เหมือนวิทยุ btn
$(".checkgroup").live('change',function() {
var previous=this.checked;
$(".checkgroup).attr("checked", false);
$(this).attr("checked", previous);
});