我生成多选框。接下来,我为此选择添加一些选项,并尝试设置所选选项。但这不起作用。这是我设置Selected项目的代码:
for(xx=0;xx<obj.length; xx++)
{
//console.log(obj.length);
idd = obj[xx].id_produkt_lista;
id_statusd = obj[xx].id_status;
$('#sel_' + idd).find("option[value=" + id_statusd + "]").attr('selected','selected');
}
上面代码中的变量是:
我的HTML代码如下:
<tbody>
<tr id="47">
<td id="" class="">2</td>
<td id="">
<select class="sel" id="sel_47">
<option value="2" style="color: rgb(186, 175, 28);">drukowanie</option>
<option valuea="3" style="color: rgb(8, 193, 255);">na zgrzewalni</option>
<option value="4" style="color: rgb(112, 51, 158);">na oklejaniu</option>
<option value="5" style="color: rgb(112, 51, 158);">laminowanie</option>
<option value="6" style="color: rgb(112, 51, 158);">przycinanie</option>
<option value="7" style="color: rgb(112, 51, 158);">oklejanie</option>
<option value="8" style="color: rgb(237, 90, 21);">na cięciu</option>
<option value="9" style="color: rgb(237, 90, 21);">na frezowaniu</option>
<option value="10" style="color: rgb(237, 90, 21);">burtowanie i klejenie</option>
<option value="11" style="color: rgb(237, 90, 21);">spawanie</option>
<option value="12" style="color: rgb(237, 90, 21);">elektryka</option>
<option value="14" style="color: rgb(90, 35, 163);">zamowienie zewnetrzne</option>
<option value="15" style="color: rgb(62, 201, 65);">MAGAZYN-gotowe</option>
</select>
</td>
</tr>
<tr id="48">
<td id="" class="">3</td>
<td id="">
<select class="sel" id="sel_48">
<option value="2" style="color: rgb(186, 175, 28);">drukowanie</option>
<option value="3" style="color: rgb(8, 193, 255);">na zgrzewalni</option>
<option value="4" style="color: rgb(112, 51, 158);">na oklejaniu</option>
<option value="5" style="color: rgb(112, 51, 158);">laminowanie</option>
<option value="6" style="color: rgb(112, 51, 158);">przycinanie</option>
<option value="7" style="color: rgb(112, 51, 158);">oklejanie</option>
<option value="8" style="color: rgb(237, 90, 21);">na cięciu</option>
<option value="9" style="color: rgb(237, 90, 21);">na frezowaniu</option>
<option value="10" style="color: rgb(237, 90, 21);">burtowanie i klejenie</option>
<option value="11" style="color: rgb(237, 90, 21);">spawanie</option>
<option value="12" style="color: rgb(237, 90, 21);">elektryka</option>
<option value="14" style="color: rgb(90, 35, 163);">zamowienie zewnetrzne</option>
<option value="15" style="color: rgb(62, 201, 65);">MAGAZYN-gotowe</option>
</select>
</td>
</tr>
<tr id="49">
<td id="" class="">4</td>
<td id="">
<select class="sel" id="sel_49"><option value="2" style="color: rgb(186, 175, 28);">drukowanie</option>
<option value="3" style="color: rgb(8, 193, 255);">na zgrzewalni</option><option value="4" style="color: rgb(112, 51, 158);">na oklejaniu</option>
<option value="5" style="color: rgb(112, 51, 158);">laminowanie</option><option value="6" style="color: rgb(112, 51, 158);">przycinanie</option>
<option value="7" style="color: rgb(112, 51, 158);">oklejanie</option><option value="8" style="color: rgb(237, 90, 21);">na cięciu</option>
<option value="9" style="color: rgb(237, 90, 21);">na frezowaniu</option><option value="10" style="color: rgb(237, 90, 21);">burtowanie i klejenie</option>
<option value="11" style="color: rgb(237, 90, 21);">spawanie</option><option value="12" style="color: rgb(237, 90, 21);">elektryka</option>
<option value="14" style="color: rgb(90, 35, 163);">zamowienie zewnetrzne</option><option value="15" style="color: rgb(62, 201, 65);">MAGAZYN-gotowe</option>
</select></td></tr> </tbody>
答案 0 :(得分:2)
您无需以这种方式在选项上设置所选属性。您所要做的就是使用select
上的'val'功能。
在此处查看此操作:http://jsfiddle.net/ht6xD/
所以您的代码可能如下所示:
for(xx=0;xx<obj.length; xx++)
{
//console.log(obj.length);
idd = obj[xx].id_produkt_lista;
id_statusd = obj[xx].id_status;
$('#sel_' + idd).val(id_statusd);
}
不太可能与问题有关,但你仍然应该修复。在第一次<select>
更改
<option valuea="3"
到
<option value="3"
修改强>
我嘲笑了这个(http://jsfiddle.net/HacLZ/)。真的,这是你应该考虑做的事情,但现在已经完成了。
在所有三种解决方案(你的,我的和nbrooks)中,代码都可以正常工作。所以一定有别的错误。我怀疑你有重复ID。
答案 1 :(得分:1)
.val()
接受一个回调参数,该参数可以在给定索引和先前值的情况下计算元素的新值。
这样的事情应该有效:
$("select.sel").val(function(index, value) {
return obj[index]["id_status"];
});
答案 2 :(得分:0)
如果idd和id_statusd包含预期值,它应该可以正常工作,但请尝试将您的选择行更改为:
$('#sel_' + idd + ' option[value="' + id_statusd + '"]').attr('selected','selected');
答案 3 :(得分:0)
试试这个
JS CODE
$(document).ready(function(){
$('select').change(function(){
var id = $(this).attr('id');
console.log($('#'+id+'').find('option:selected').text());
});
});
的 JS FIDDLE 强> 的