Forms JQuery map()表单输入
我正在使用下面的示例映射:input的name属性。我必须在map()中放入一个条件语句,以确定复选框是否被选中并返回true或false。但是现在我没有得到选择选项名称attr。我觉得这需要更多的代码编写。获取所有名称属性并查看签入复选框的有效方法是什么。查看下面的示例:Forms JQuery map()表单输入,forms,map,Forms,Map,我正在使用下面的示例映射:input的name属性。我必须在map()中放入一个条件语句,以确定复选框是否被选中并返回true或false。但是现在我没有得到选择选项名称attr。我觉得这需要更多的代码编写。获取所有名称属性并查看签入复选框的有效方法是什么。查看下面的示例: 1. 2. 3. $(“p”).append($(“:input”).map(函数(){ if($(this).attr('type')=='checkbox'){ 返回$(this.attr('checked'); }
1.
2.
3.
$(“p”).append($(“:input”).map(函数(){
if($(this).attr('type')=='checkbox'){
返回$(this.attr('checked');
}
否则{
返回$(this.attr('name');
}
}).get().join(“,”);
这就是要返回的内容姓名、密码、url、true也许这就是你想要的
$("p").append($(":input").map(function() {
if($(this).is('select')) {
return $(this).children('option').map(function() {
return $(this).attr('name');
}).get().join(", ");
} else if($(this).attr('type')=='checkbox') {
return $(this).attr('checked');
} else {
return $(this).attr('name');
}
}).get().join(", "));
如果没有,您可能应该提供预期的输出
编辑:接受的版本
如果仍要使用map(),可以避免使用map两次 但是如果您想跳过map(),我想您可以尝试的一种方法是$('form').serialize()。在获得序列化字符串后,可以使用正则表达式替换不需要的数据。不过请注意,您需要为和提供一个名称。下面是一个例子:。(注意:我的正则表达式不是很好,所以也许你可以使用它并得到你想要的结果)
我不知道第二个实现是否是您想要的,但这是一个建议。Uhh。。我不知道如果只需要选定的一个,为什么需要map():您的代码类似于Jamie的修订版+1用于JSFIDLE选项。
$("p").append($(":input").map(function() {
if($(this).is('select')) {
return $(this).children('option').map(function() {
return $(this).attr('name');
}).get().join(", ");
} else if($(this).attr('type')=='checkbox') {
return $(this).attr('checked');
} else {
return $(this).attr('name');
}
}).get().join(", "));
$("p").append($(":input").map(function() {
if($(this).is('select')) {
return $(this).val();
} else if($(this).attr('type')=='checkbox') {
return $(this).attr('checked');
} else {
return $(this).attr('name');
}
}).get().join(", "));