0

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

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

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

当脚本到达 this.is(":checked") 时,它会出错,但是作为 jquery,我的控制台不会向我显示任何错误消息,只会停止。

如果我在第一行之后发出警报或 console.log “this”,我会得到表单字段,所以我知道这很有效。

4

4 回答 4

5

尝试

 if($(this).is(":checked")){

因为this只是对 DOM 中节点的引用(您需要改为使用jQuery包装器来链接方法is().

于 2013-01-14T15:51:30.430 回答
3

试试这个:

if( this.checked)

this是普通的 DOM 节点,checked它的属性告诉你它是否被选中。创建一个全新的 jQuery 对象只是为了查看是否设置了属性是多余的。

于 2013-01-14T15:52:18.810 回答
2

在这种情况下,this指的是 DOM 元素,而不是 jQuery 对象——而且 DOM 元素没有方法is()。如果要使用 is 方法,可以将其包装在 jQuery 对象中:

if($(this).is(":checked")){

或使用 DOM 元素的checked属性:

if(this.checked){
于 2013-01-14T15:52:33.177 回答
1
$(this).is(':checked')

如果你想序列化你的表单试试这个

$('your-form-selector').serializeArray()
于 2013-01-14T15:53:26.550 回答