jquery如何获取表单元素类型,名称和值

时间:2011-04-14 16:29:45

标签: jquery forms elements

我知道我可以使用

获得名称/价值关系
$(#form).serializeArray();

但有没有办法通过一次通话获得整个辣酱玉米饼馅,类型,名称和价值?

5 个答案:

答案 0 :(得分:22)

使用$("form :input")

根据docs

  

描述:选择所有输入,   textarea,选择和按钮元素。

现在问你的问题,

  

有一种方法可以获得整体   辣酱玉米饼馅,类型,名称和价值   一个电话?

如果您只想循环浏览项目,

$("form :input").each(function(index, elm){
  //Do something amazing...
});

但是如果你想要返回某种结构,你可以使用.map()

var items = $("form :input").map(function(index, elm) {
    return {name: elm.name, type:elm.type, value: $(elm).val()};
});

或者如果您只是想获得元素

$("form :input").get()


Example of this on jsfiddle

答案 1 :(得分:4)

以下代码有助于从表单ID

的特定表单中获取元素的详细信息
$('#formId input, #formId select').each(
    function(index){  
        var input = $(this);
        alert('Type: ' + input.attr('type') + 'Name: ' + input.attr('name') + 'Value: ' + input.val());
    }
):

以下代码有助于从加载页面中的所有表单中获取元素的详细信息,

$('form input, form select').each(
    function(index){  
        var input = $(this);
        alert('Type: ' + input.attr('type') + 'Name: ' + input.attr('name') + 'Value: ' + input.val());
    }
):

以下代码有助于获取放置在加载页面中的元素的详细信息,即使元素未放置在标记内,

$('input, select').each(
    function(index){  
        var input = $(this);
        alert('Type: ' + input.attr('type') + 'Name: ' + input.attr('name') + 'Value: ' + input.val());
    }
):

注意:我们在对象列表中添加了更多元素标记名称,如下所示,

Example: to get name of attribute "fieldset",

$('input, select, fieldset').each(
    function(index){  
        var input = $(this);
        alert('Type: ' + input.attr('type') + 'Name: ' + input.attr('name') + 'Value: ' + input.val());
    }
):

答案 2 :(得分:2)

您可以遍历表单的每个input元素并使用从那里获得的数据吗?像这样:

$('form input').each(function(i, v) {
    // Access like this:
    //   $(this).attr('type');
    //   $(this).attr('value');
    //   $(this).attr('name');
});

答案 3 :(得分:2)

要使用

获取所有表单元素
$('input, textarea, select').each(function() {
    //   $(this).attr('type');
    //   $(this).attr('name');
    //   $(this).val();
});

答案 4 :(得分:0)

也许children()会更有用,但除非你使用选择器,否则你仍然必须自己过滤感兴趣的元素。

如果您只想在表单中选择successful元素,也可以执行以下操作;这不包括按钮或禁用的字段。

$($('#testf').serializeArray()).each(function(index, value){
    $('#testf [name="' + value.name + '"]'); //select the named element
});

马克的回答似乎是最好的方式,IMO。