this.is(“:已检查”)无效

时间:2013-01-14 15:49:58

标签: javascript jquery

我正在使用以下代码遍历表单中的所有复选框。这些框是动态地从php脚本中生成的,因此我不知道名称或复选框的数量。

我需要找出已勾选的复选框,因此我只将这些复选框传递给处理表单的php脚本。

 $("#panelform input:checkbox").each(function () {
    if(this.is(":checked")){
    fields = fields+"&"+this.name+"="+this.value;
}
});

当脚本到达this.is(“:checked”)时,它会出现错误但是jquery我的控制台没有显示任何错误信息就会停止。

如果我提醒或console.log“这个”在第一行之后我得到表单字段,所以我知道那很有效。

4 个答案:

答案 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方法:

,可以将其包装在jQuery对象中
if($(this).is(":checked")){

或使用DOM元素的checked属性:

if(this.checked){

答案 3 :(得分:1)

$(this).is(':checked')

如果您想序列化表单,请尝试使用

$('your-form-selector').serializeArray()