jquery – 如何选择所有具有相同名称的输入,并按其名称进行索引

前端之家收集整理的这篇文章主要介绍了jquery – 如何选择所有具有相同名称的输入,并按其名称进行索引前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我必须处理由第三部分生成的表单.此表单提供了一些复选框“多选”属性.但输入名称是相同的,PHP $_POST不能处理相同的键(只处理最后一个数据).

这是一个表单的例子:

<form>
    <input type="checkBox" name="attr1" value="1" />
    <input type="checkBox" name="attr1" value="2" />
    <input type="checkBox" name="attr1" value="3" />
    <input type="checkBox" name="attr1" value="4" />
    <input type="checkBox" name="attr2" value="xx" />
    <input type="checkBox" name="attr3" value="a" />
    <input type="checkBox" name="attr3" value="b" />
    <input type="checkBox" name="attr3" value="c" />
    <input type="checkBox" name="attr3" value="d" />
    <input type="text" name="attr4" value="" />
</form>

我想解析所有复选框输入,只得到一组相同的名称输入,并将“[]”附加到他们的名字…

在jQuery处理之后我想要得到什么:

<form>
    <input type="checkBox" name="attr1[]" value="1" />
    <input type="checkBox" name="attr1[]" value="2" />
    <input type="checkBox" name="attr1[]" value="3" />
    <input type="checkBox" name="attr1[]" value="4" />
    <input type="checkBox" name="attr2" value="xx" />
    <input type="checkBox" name="attr3[]" value="a" />
    <input type="checkBox" name="attr3[]" value="b" />
    <input type="checkBox" name="attr3[]" value="c" />
    <input type="checkBox" name="attr3[]" value="d" />
    <input type="text" name="attr4" value="" />
</form>

有没有办法识别具有相同名称的输入组?

解决方法

如果存在具有相同名称的另一个项目,则将附加[]到每个复选框项目的名称.
var name_map = {};
$("input[type=checkBox]")  // for all checkBoxes
    .each(function() {  // first pass,create name mapping
        var name = this.name;
        name_map[name] = (name_map[name]) ? name + "[]" : name;
    })
    .each(function() {  // replace name based on mapping
        this.name = name_map[this.name];
    });

演示:http://jsfiddle.net/gnfsG/

猜你在找的jQuery相关文章