选择下拉列表默认为空白选项

时间:2015-07-16 10:54:43

标签: javascript asp.net-mvc-4

我使用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>

4 个答案:

答案 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;