我使用MVC4,最初我的下拉列表显示数据列表, 我的javascript看起来像,
$.each(data, function (value, key) {
var opt = "<option value=\"" + key + "\">" + value + "</option>";
$("#OwnerAgency").append(opt);
});
如何将所选默认值设置为空白选项。
HTML:
<div class="SmallTopSpace">
<span class="LabelNormal">Primary Case Agency</span>
@Html.DropDownListFor(m => m.Agencies.AgencyKey, new SelectList(""), "", new { @class = "ImportDropDownMax", @id = "OwnerAgency", @onchange = "OwnerAgencyFunction();" })
</div>
答案 0 :(得分:0)
你不能只在视图/ html的顶部插入一个空选项吗?
<select id="OwnerAgency">
<option></option>
</select>
或者你可以用javascript添加它。
var emptyOption = true;
$.each(data, function (value, key) {
var opt;
if (emptyOption) {
opt = "<option></optino>";
$("#OwnerAgency").append(opt);
emptyOption = false;
}
opt = "<option value=\"" + key + "\">" + value + "</option>";
$("#OwnerAgency").append(opt);
});
答案 1 :(得分:0)
之前$ .each只是在数据数组的那个开头追加另一个空元素。
或在你的HTML中执行:
<select>
<option disabled selected></option>
</select>
答案 2 :(得分:0)
<select id="mySelect">
</select>
脚本:
var myOptions = {
val1 : 'text1',
val2 : 'text2'
};
var mySelect = $('#mySelect');
$.each(myOptions, function(val, text) {
mySelect.append(
$('<option></option>').val(val).html(text)
);
});
mySelect.append('<option value=' + myOptions.length + ' selected>default</option>');
在选择列表生成http://jsfiddle.net/3ns3fj3t/
之前或之后设置默认选择在你的情况下:
$.each(data, function (value, key) {
var opt = "<option value=\"" + key + "\">" + value + "</option>";
$("#OwnerAgency").append(opt);
});
$("#OwnerAgency").append('<option value=' + data.length + ' selected>default</option>');
答案 3 :(得分:0)
您可以通过向SelectList对象添加一个空元素在C#ViewModel中执行此操作:
var selectList = new SelectList(....);
selectList.Items.Insert(0, new ListItem(String.Empty, String.Empty));
selectList.SelectedIndex = 0;