我有一个动态填充的jQuery UI selectmenu
,因此我无法在其中一个选项中设置“selected”属性。
for (var i = 0; i < Data.length; i++)
{
$("#ListID").append($("<option></option>").val(Data[i].ColorName).html(Data[i].ColorName));
}
另外,我尝试了各种其他方法将值设置为选中,例如:
$('#ListID').val(Data[0].ColorName);
无效
$("#ListID[value='" + Data[0].ColorName + "']").attr('selected', 'selected');
无效
$('#ListID').selectmenu("refresh");
&lt; =这显示了最后一个值,但仍然未选中提交时显示空白值
那么,我应该如何预先选择selectmenu
中的选项到数组的第一个元素
问题是它总是强制用户从下拉列表中选择一个选项,否则它在提交时显示空白值,因为我预先选择了一个值,所以不应该这样。
答案 0 :(得分:1)
试试这个:
for (var i = 0; i < Data.length; i++)
{
$("#ListID").append("<option value='"+Data[i].ColorName+"' "+(i == 0 ? "selected":"")+">"+Data[i].ColorName+"</option>");
}
或
for (var i = 0; i < Data.length; i++)
{
$("#ListID").append($("<option "+(i == 0 ? "selected":"")+"></option>").val(Data[i].ColorName).html(Data[i].ColorName));
}
在您要选择的选项上使用已选择。
答案 1 :(得分:0)
我只是通过制作一系列颜色做了一个简单的选择,请从这里得到你的想法,让我知道它是否有效。
$("#ListID").selectmenu();
var Data = [{ColorName:"orange"},{ColorName:"blue"},{ColorName:"green"},{ColorName:"red"}];
var selected = "blue";
for (var i = 0; i < Data.length; i++)
{
var select = '';
if(selected==Data[i].ColorName){
select = "selected=selected";
}
$("#ListID").append($("<option "+select+"></option>").val(Data[i].ColorName).html(Data[i].ColorName));
}
$("#ListID").selectmenu("refresh");
&#13;
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<select id="ListID">
</select>
&#13;
答案 2 :(得分:0)
让我们试试这个选择。
<select id="cars">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
我们希望动态选择jquery中的mercedes。例如。
$("#cars option[value='mercedes']").prop('selected', true);
选项[value ='']是一个选择器。
的jsfiddle: https://jsfiddle.net/onurgule/t4obc56s/
jQuery UI小提琴:https://jsfiddle.net/onurgule/p44mta9e/