如何更改输入的单个部分" name"使用JQuery / Javascript?

时间:2016-03-19 16:54:57

标签: javascript jquery

作为another question的后续行动,请考虑以下代码:

<body>
<script>

    function addAttendee() {
        $('.newAttendee').first().clone().appendTo('.attendees');
    }

</script>

<form action="test2.php" name="testform" method="post">
    <span class="attendees">
    <input type="text" name="attendee[0][city]" value="city 1">
    <input type="text" name="attendee[0][state]" value="state 1">
    <input type="text" name="attendee[0][zip]" value="zip 1">
    </span>
<a href="#" name="addAttendee" onclick="addAttendee()">Add Attendee</a>
<br>
<input type="submit" onclick="getOutput()">
</form>

<div class="hideThis" style="display: none;">
    <span class="newAttendee">
        <br>
    <input type="text" name="attendee[1][city]" value="city 2">
    <input type="text" name="attendee[1][state]" value="state 2">
    <input type="text" name="attendee[1][zip]" value="zip 2">
    </span>
</div>

</body>

当我点击&#34;添加参加者&#34;时,我想将添加的部分的数组编号更改为下一个更高的值。

即:

name="attendee[1][xxxxx]

需要成为

name="attendee[2][xxxxx]

想知道是否有人对此有任何捷径?

提前再次感谢。

2 个答案:

答案 0 :(得分:0)

在数组名称中不指定索引值会更简单:

例如更改:

<input type="text" name="attendee[1][city]" value="city 2">

<input type="text" name="attendee[][city]" value="city 2">

此外,由于您要克隆现有的,您应该重置克隆中的值

function addAttendee() {
    var $clone = $('.newAttendee').first().clone();
    $clone.find('input').val('');
    $('.attendees').append($clone);       
}

答案 1 :(得分:0)

以下是适用于我想要做的解决方案:

<body>
<script>

    $(document).ready( function() {
    });

    $attendeeValue = 1;

    function addAttendee() {
        var $newAttendee = $('.newAttendee').html();
        $newAttendee = $newAttendee.replace(/xxx/g,$attendeeValue++);
        console.log($newAttendee);
        $('.attendees').append($newAttendee);
        //$('.newAttendee').first().clone().appendTo('.attendees');

    }

</script>

<form action="test2.php" name="testform" method="post">
    <span class="attendees">
    <input type="text" name="attendee[0][city]" value="city 1">
    <input type="text" name="attendee[0][state]" value="state 1">
    <input type="text" name="attendee[0][zip]" value="zip 1">
    </span>
<a href="#" name="addAttendee" onclick="addAttendee()">Add Attendee</a>
<br>
<input type="submit" onclick="getOutput()">
</form>

<div class="hideThis" style="display: none;">
    <span class="newAttendee">
        <br>
    <input type="text" name="attendee[xxx][city]">
    <input type="text" name="attendee[xxx][state]">
    <input type="text" name="attendee[xxx][zip]">
    </span>
</div>

</body>

我希望这对其他人有用。

感谢所有人的投入。