我有一个循环数据库的表单,并将表单显示给用户。用户应该将下拉值更改为Add Duplicate或Move,但在许多情况下,它们都将是相同的。所以,我想给他们一个“复制”功能,他们可以点击一个图标。这将触发一个函数来获取所选输入名称的值(就在同一个表格单元格中的图标前面(td),并将列表中的其他项目设置为相同的值.ID是唯一的,我想我可以使用$('#id')。val()来获取值,但即使这样也无效。
<tr id="row_653"> <-- this value increments -->
<td>xtipi208_c_dl8453</td>
<td>Dalllas</td>
<td>ibm</td>
<td>SLPAR on p570</td>
<td>2012-04-15</td>
<td>dl8453</td>
<td>mt1933</td>
<td><select name="systemAction_653" id="SystemAction_653" class="systemAction">
<option value="0">Action Required</option>
<option value="copy">Add Dup</option>
<option value="move">Move</option>
</select>
<span class="ui-icon ui-icon-copy vtip replicate" id="select_resource_653" title="Copy this value down the list." style="float: right;" name="systemAction" systemid="653" cntr="13"></span></td>
</tr>
这是我正在使用的JS:
$('.replicate').live("click",function(){
var nm=$(this).attr('name');
var cntr=$(this).attr('cntr');
var systemID=$(this).attr('systemID');
var vl=$(this).parent().prev().find("select").val();
// alert(nm + ' ' + cntr + ' ' + systemID + ' ' + vl); //for vl, I'm getting undefined
$('[name="'+nm+'"][systemID="'+ systemID + '"]').each(function() {
if ($(this).attr("cntr") >= cntr)
$(this).parent().prev().find("select").val(vl);
});
});
答案 0 :(得分:0)
从我收集到的内容中,您在页面上有一堆<select>
,它们可以具有相同的选定值,对吧?而不是强迫用户为每个<select>
选择相同的元素,而你想要实现一个将它们全部设置为相同选定值的按钮,是否正确?
如果是这样,那么这就是诀窍:
当然它不能无缝地融入现有的代码库,但应该为您提供方法和洞察力,以便根据您的需要进行修改。
如果我误解了您的问题,请告诉我,我会尝试进一步帮助和/或删除此答案。
答案 1 :(得分:0)
很难确定,但可能就像这样简单:
$('table').on("click", "button.copy_down", function(){
var $this = $(this);
var vl = $this.siblings("select.systemAction").val();
$this.closest("tr").nextAll().find("select.systemAction").val(vl);
});