我知道我可以使用
获得名称/价值关系$(#form).serializeArray();
但有没有办法通过一次通话获得整个辣酱玉米饼馅,类型,名称和价值?
答案 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()
答案 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。