将输入字段的值复制到下一个表格单元格中的相应输入字段

时间:2014-03-25 15:27:01

标签: javascript jquery html

我有一个代表一个月的表,而且heach单元格有几个输入字段。 现在我想添加一个Button来将所有未隐藏字段的值复制到下一个单元格()中的相应字段。 但是,我的广告jQuery不好,无法让它发挥作用。 标记是通过Ajax请求添加的,但是我应该没有问题,因为我正在使用文档" on"事件

修改 使用&#34; next cell&#34;我的意思是我的标记中的第二个标记。我想将<li class="disabled"><span>3</span></li>的单元格中的值复制到<li class="disabled"><span>4</span></li>的单元格。这应该通过点击<li class="next copyNext"><a href="#">→</a></li>

来完成

我的标记:

<table>
<tr>
<td>
<ul class="pager">
                <li class="previous"><a href="#">←</a></li>
                <li class="disabled"><span>3</span></li>
                <li class="next copyNext"><a href="#">→</a></li>
            </ul>

<select class="form-control" id="Staffings_0__CenterId" name="Staffings[0].CenterId">
<option value="13">ACD</option>
<option value="142">AG</option>
<option selected="selected" value="51">HINS</option>
</select>
</td>
<td>
<ul class="pager">
                <li class="previous"><a href="#">←</a></li>
                <li class="disabled"><span>4</span></li>
                <li class="next disabled"><a href="#">→</a></li>
            </ul>

<select class="form-control" id="Staffings_1__CenterId" name="Staffings[1].CenterId">
<option value="13">ACD</option>
<option selected="selected" value="142">AG</option>
<option value="51">HINS</option>
</select>
</td>
</tr>
</table>

我的JavaScript:

$(document).on('click', '.copyNext', function () {
    var self = $(this);
    var containingTd = self.parents('td');
    containingTd.children("input[type!='hidden']").each(function (index, element) {
        var name = $(this).attr('name');
        var value = $(this).val();
        var nameArr1 = name.split('[');
        var nameBeforeIndex = nameArr1[0];
        var nameArr2 = nameArr1[1].split(']');
        var index = parseInt(nameArr2[0]);
        var nameAfterIndex = nameArr2[1];
        var nextIndex = index + 1;
        var nextName = nameBeforeIndex + '[' + nextIndex + ']' + nameAfterIndex;
        var nextElement = $(this).next("name=['" + nextName + "']");
        nextElement.val(value);
    });
});

1 个答案:

答案 0 :(得分:0)

我的脚本包含两个问题: 1.它只搜索输入元素,但我使用的是select元素。 2. var nextElement ...方括号必须在名字前面,并且&#39;和&#34;不得不改变。

这是我的新脚本按预期工作:

$(document).on('click', '.copyNext', function () {
    var self = $(this);
    var containingTd = self.parents('td');
    var children = containingTd.find("input[type!='hidden'],select[type!='hidden']");
    children.each(function (index, element) {
        var name = $(this).attr('name');
        var value = $(this).val();
        var nameArr1 = name.split('[');
        var nameBeforeIndex = nameArr1[0];
        var nameArr2 = nameArr1[1].split(']');
        var index = parseInt(nameArr2[0]);
        var nameAfterIndex = nameArr2[1];
        var nextIndex = index + 1;
        var nextName = nameBeforeIndex + '[' + nextIndex + ']' + nameAfterIndex;
        var nextElement = $('[name="' + nextName + '"]');
        nextElement.val(value);
    });
});