我正在使用以下代码遍历表单中的所有复选框。这些框是动态地从php脚本中生成的,因此我不知道名称或复选框的数量。
我需要找出已勾选的复选框,因此我只将这些复选框传递给处理表单的php脚本。
$("#panelform input:checkbox").each(function () {
if(this.is(":checked")){
fields = fields+"&"+this.name+"="+this.value;
}
});
当脚本到达this.is(“:checked”)时,它会出现错误但是jquery我的控制台没有显示任何错误信息就会停止。
如果我提醒或console.log“这个”在第一行之后我得到表单字段,所以我知道那很有效。
答案 0 :(得分:5)
尝试
if($(this).is(":checked")){
因为this
只是对DOM中节点的引用(而您需要使用jQuery
包装器来链接方法is()
。
答案 1 :(得分:3)
试试这个:
if( this.checked)
this
是普通的DOM节点,checked
是告诉您是否已检查的属性。创建一个全新的jQuery对象只是为了查看属性是否设置是多余的。
答案 2 :(得分:2)
在该事件中,this
指的是DOM元素,而不是jQuery对象 - 而DOM元素没有方法is()
。如果要使用is方法:
if($(this).is(":checked")){
或使用DOM元素的checked
属性:
if(this.checked){
答案 3 :(得分:1)
$(this).is(':checked')
如果您想序列化表单,请尝试使用
$('your-form-selector').serializeArray()