我有一个代表一个月的表,而且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);
});
});
答案 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);
});
});