迭代通过Jquery Form Object获取输入

时间:2014-03-24 17:54:21

标签: jquery forms

我将jQuery表单对象传递给函数。此函数应查看所有复选框并查找ID属性。

我尝试了过滤功能。但它没有看到任何输入字段。

function templateRemove(form){

    selectedTemplateSizes = [];

    var selectedSizesCount = 0;

    form.filter(':input').each(function(i, e){
        console.log($(e));
        selectedTemplateSizes.push($(e).attr('id'));
    });

}

但是没有任何东西被添加到数组中,并且没有任何东西被记录在控制台中。对此功能的调用如下:

 templateRemove($( "#delete-selected-form" ));

我不是这样做的吗?

2 个答案:

答案 0 :(得分:3)

这可能适合你。

将功能修改为:

function templateRemove(form){
    selectedTemplateSizes = [];
    var selectedSizesCount = 0;
    $(form + ' :input').each(function(i, e){
        var inputField = $(this);
        //now you can do whatever you want to do with this input field
    });
}

并将其命名为:

templateRemove( "#delete-selected-form" );

,只是将该元素的id作为字符串而不是对象本身传递,以便于理解。

答案 1 :(得分:1)

使用Find代替Filter ..,它运行正常..

您可以这样考虑:Find - 搜索所选项目以查找匹配的元素,而Filter从所选项中删除不匹配的元素。

templateRemove($( "#delete-selected-form" ));

function templateRemove(form){

selectedTemplateSizes = [];

var selectedSizesCount = 0;

  form.find(':input').each(function(i, e){
    console.log($(e));
    selectedTemplateSizes.push($(e).attr('id'));
  });

}

看到这个小提琴:http://jsfiddle.net/jFIT/m9QqX/