jQuery创建选择和设置值
jQuery create select and set value
我有一个函数,它接受一个被解析为它的数组,然后循环在数组中为每个数据集创建一个表行,其中表行有三个单元格—一个文本输入和两个选择。相同的函数还应该使用它接收到的数据设置两个选择值,但这是我的问题,因为它没有正确发生。
下面是整个函数:
function editVehicleServiceHistory(serviceHistory){
var rows = serviceHistory;
for (var i=0; i < rows.length; i++){
var setLocation = rows[i].sh_location;
var setDateFrom = rows[i].sh_location_from;
var setDateTo = rows[i].sh_location_to;
counter = $('#myTable tr').length - 2;
var newRow = $("<tr>");
var cols = "";
cols += '<td><input type="text" class="location-edit-input-size" name="location' + counter + '" value="'+ setLocation +'"/></td>';
cols += '<td><select name="date_from_select_edit" id="date_from_select_edit"><option value="Unknown">Unknown</option><option value="2015">2015</option><option value="2014">2014</option><option value="2013">2013</option><option value="2012">2012</option><option value="2011">2011</option><option value="2010">2010</option><option value="2009">2009</option><option value="2008">2008</option><option value="2007">2007</option><option value="2006">2006</option><option value="2005">2005</option><option value="2004">2004</option><option value="2003">2003</option><option value="2002">2002</option><option value="2001">2001</option><option value="2000">2000</option><option value="1999">1999</option><option value="1998">1998</option><option value="1997">1997</option><option value="1996">1996</option><option value="1995">1995</option><option value="1994">1994</option><option value="1993">1993</option><option value="1992">1992</option><option value="1991">1991</option><option value="1990">1990</option><option value="1989">1989</option><option value="1988">1988</option><option value="1987">1987</option><option value="1986">1986</option><option value="1985">1985</option><option value="1984">1984</option><option value="1983">1983</option><option value="1982">1982</option><option value="1981">1981</option><option value="1980">1980</option></select></td>';
$('#date_from_select_edit').val(setDateFrom);
cols += '<td><select name="date_to_select_edit" id="date_to_select_edit"><option value="Present">Present</option><option value="Unknown">Unknown</option><option value="2015">2015</option><option value="2014">2014</option><option value="2013">2013</option><option value="2012">2012</option><option value="2011">2011</option><option value="2010">2010</option><option value="2009">2009</option><option value="2008">2008</option><option value="2007">2007</option><option value="2006">2006</option><option value="2005">2005</option><option value="2004">2004</option><option value="2003">2003</option><option value="2002">2002</option><option value="2001">2001</option><option value="2000">2000</option><option value="1999">1999</option><option value="1998">1998</option><option value="1997">1997</option><option value="1996">1996</option><option value="1995">1995</option><option value="1994">1994</option><option value="1993">1993</option><option value="1992">1992</option><option value="1991">1991</option><option value="1990">1990</option><option value="1989">1989</option><option value="1988">1988</option><option value="1987">1987</option><option value="1986">1986</option><option value="1985">1985</option><option value="1984">1984</option><option value="1983">1983</option><option value="1982">1982</option><option value="1981">1981</option><option value="1980">1980</option></select></td>';
$('#date_to_select_edit').val(setDateTo);
cols += '<td><input type="button" class="ibtnDel" value="Delete"></td>';
newRow.append(cols);
$("table.order-list").append(newRow);
counter++;
}
}
实际情况是这样的,如果有两组数据创建了两个表行,那么最终结果应该是:
Text Input | Select | Select
墨尔本| 2001 | 2008
巴拉瑞特| 2008 | Present
它看起来像这样:
墨尔本| 2008 |至今
巴拉瑞特|未知|现在
它向我建议,作为函数第二次循环(或之后的时间),下一个数组的值覆盖第一个表行,而不是被正确插入到第二个。因此,我最终得到的第一个表行中有第二行元素,这不是我想要的。
我认为这可能正在发生,因为目前有两个选择在该表具有相同的名称和id,但我不确定我如何能使他们唯一的值作为我目前的尝试在整合计数器(如在位置名称文本输入中所见)没有工作。
提前感谢。
我想你是对的,问题出在ID上。
$('#date_to_select_edit').val(setDateTo);
该行将只返回它找到的ID为'date_to_select_edit'的第一个元素。要给它们唯一的ID,只需将循环索引附加到它的末尾。像这样:
<select name="date_from_select_edit' + i + '" id="date_from_select_edit' + i + '">
我不知道你拿着柜台想干什么。(似乎你在循环结束时增加它,然后在下一次迭代开始时再次重置它)。不过我觉得你不需要柜台了。你的循环变量i应该可以正常工作。
相关文章:
- Bootstrap Dropdown selection是在*all*下拉菜单上设置选择
- Google 图表 - 设置选择不会滚动到表格可视化中的选定行
- 是否可以在Internet Explorer 11中使用JavaScript设置选择元素的大小属性
- 设置选择选项'选择'在模式引导中
- 如何在iOS网页中设置选择
- 设置选择框的值
- 在HTML中记住用户区域设置选择的最简单方法
- 使用整数数据类型设置“选择Dropbox值”
- Knockout.js-未设置选择值
- jQuery:根据另一个复选框设置选择框的值
- 如何通过 innerHTML 设置选择标签选项
- 如何以正确的方式设置选择标签以具有“5”的大小
- CasperJS 无法设置选择列表值
- 设置选择框样式时出现问题
- 角度.js在ng重复中设置<选择>选项
- 如何从 AngularJS 的下拉框中设置选择默认值
- 如何在 jquery 手机中显示之前在页面中设置选择框的值
- 如何在本地存储中设置选择下拉列表的值并检索它,以及将值设置为默认值,除非更改
- 加载页面时无法使用 javascript 设置选择选项
- 无法使用 jquery 设置选择所选值