如何使用Javascript从我的html选择字段动态设置选项? 这是我的页面设置:
<form name="test">
<table>
<tr>
<td class='dataleft'>Product: </td>
<td><select name='inptProduct'></select></td>
</tr>
</table>
</form>
我在数组中拥有所有值。这是设置<option>
的位置。
for(var i = 0; i < productArray.length; i++) {
console.log("<option value='" + productArray[i] + "'>" + productArray[i] + "</option>");
}
PS:可以使用jQuery。
解决方案: 这是我一直在寻找的最终解决方案。它不会将新选项应用于选择字段。它首先删除所有,然后添加新的:
var optionsAsString = "";
for(var i = 0; i < productArray.length; i++) {
optionsAsString += "<option value='" + productArray[i] + "'>" + productArray[i] + "</option>";
}
$("select[name='inptProduct']").find('option').remove().end().append($(optionsAsString));
答案 0 :(得分:41)
wellyou几乎完成了所有工作:
var optionsAsString = "";
for(var i = 0; i < productArray.length; i++) {
optionsAsString += "<option value='" + productArray[i] + "'>" + productArray[i] + "</option>";
}
$( 'select[name="inptProduct"]' ).append( optionsAsString );
编辑在optionsAsString
后移除$ wrapper,因为append
会自动转换字符串
答案 1 :(得分:22)
var $inputProduct = $("select[name='inputProduct']")
$(productArray).each(function(i, v){
$inputProduct.append($("<option>", { value: v, html: v }));
});
答案 2 :(得分:2)
假设数组productArray
是一个简单数组,每个元素都是选项的值,以及该选项的所需标题。
$( 'select[name="inptProduct"]' )
.html( '<option>' + productArray.join( '</option><option>' ) + '</option>' );
示例:
productArray = ['One', 'Two', 'Three'];
// With the original code being
<select name="inptProduct">
<option>There could be no options here</option>
<option>Otherwise, any options here will be overwritten</option>
</select>
// Running the code above would output
<select name="inptProduct">
<option>One</option>
<option>Two</option>
<option>Three</option>
</select>
答案 3 :(得分:1)
function onLoad() {
var type = new Array("Saab","Volvo","BMW");
var $select = $("select[name='XXXXXType']")
alert($select);
$(type).each(function(i, v){
$select.append($("<option>", { value: v, html: v }));
});
}
<select name="XXXXXType" id="XXXXXType"></select>
答案 4 :(得分:0)
如果您不坚持使用纯JavaScript来完成这项工作,您可以使用jQuery轻松完成这项工作。
<form name="test">
<table>
<tr>
<td class='dataleft'>Product: </td>
<td><select id='inptProduct'></select></td>
</tr>
</table>
</form>
for (var i = 0; i < productArray.length; i++) {
$("#inptProduct").append('<option value=' + if_you_want_set_value + '>' + productArray[i] + '</option>');
}
请注意,我在这里使用了select标签的id。这也是我添加html部分的原因。希望你知道如何添加jQuery。
答案 5 :(得分:0)
我通常这样做:
document.getElementById("selectid").innerHTML="<option value='foo'>FOO</option>"
;
答案 6 :(得分:-5)
您可以为select id = inptProduct设置id 然后执行$('#inptProduct')。val(yourselectValue)