ฉันต้องการตรวจสอบว่าอินพุตเป็นช่องทำเครื่องหมายหรือไม่และสิ่งต่อไปนี้ใช้ไม่ได้:
$("#myinput").attr('checked') === undefined
ขอบคุณอีกครั้ง!
ฉันต้องการตรวจสอบว่าอินพุตเป็นช่องทำเครื่องหมายหรือไม่และสิ่งต่อไปนี้ใช้ไม่ได้:
$("#myinput").attr('checked') === undefined
ขอบคุณอีกครั้ง!
คำตอบ:
คุณสามารถใช้ตัวเลือกหลอก:checkbox
กับการเรียกใช้is
ฟังก์ชันของ jQuery :
$('#myinput').is(':checkbox')
var myInput = $("myinput")[0]; var isCheckbox = myInput.nodeName.toLowerCase() == "input" && myInput.type == "checkbox";
>>> a=$("#communitymode")[0]
<input id="communitymode" type="checkbox" name="communitymode">
>>> a.type
"checkbox"
หรือสไตล์อื่น ๆ ของ jQuery:
$("#myinput").attr('type') == 'checkbox'
attr()
ฟังก์ชันjQuery ที่ทำให้เกิดความสับสน
attr()
เป็นprop()
afaik attr()
ไม่ได้รับค่าแอตทริบิวต์ "ของจริง" (เช่นการตรวจสอบหรือไม่) จากเบราว์เซอร์ สุจริตไม่แน่ใจว่าทำไมเป็นกรณีนี้ แต่ฉันได้เรียนรู้เรื่องนี้ในขณะที่กลับ
$("#myinput").attr('type') == 'checkbox'
โซลูชันที่ไม่ใช่ jQuery นั้นเหมือนกับโซลูชัน jQuery:
document.querySelector('#myinput').getAttribute('type') === 'checkbox'
ใช้ฟังก์ชั่นนี้:
function is_checkbox(selector) {
var $result = $(selector);
return $result[0] && $result[0].type === 'checkbox';
};
หรือปลั๊กอิน jquery นี้:
$.fn.is_checkbox = function () { return this.is(':checkbox'); };
$('#myinput').is(':checkbox')
นี่เป็นเพียงการทำงานเพื่อแก้ไขปัญหาในการตรวจสอบว่ามีการทำเครื่องหมายในช่องทำเครื่องหมายหรือไม่ มันกลับจริงหรือเท็จฉันค้นหาชั่วโมงและลองทุกอย่างตอนนี้มันทำงานได้ชัดเจนฉันใช้ EDG เป็นเบราว์เซอร์และ W2UI