DropDownListFor:第一个选项充当占位符

时间:2014-12-08 04:53:42

标签: c# asp.net-mvc

这是我的DropDownList字段 -

@Html.DropDownListFor(m => m.TypeId, (IEnumerable<SelectListItem>)ViewData["Types"], "--Choose One--", htmlAttributes: new { @class = "form-control" })

如何确保在未选择任何内容时显示optionLabel:--Choose One--,并在列表显示时消失,主要用作占位符?

修改1

我基本上不希望标签参与jQuery验证,因此需要在显示时将其删除。这是jQuery片段 -

rules: {
    TypeId: {
        required: true
    }
}

但仍然--Choose One--被视为有效值并被标记为成功 -

Choose One

这是为下拉列表生成的html -

<select class="form-control" data-val="true" data-val-number="The field TypeId must be a number." data-val-required="The TypeId field is required." id="TypeId" name="TypeId">
    <option value="">--Choose One--</option>
    <option value="1">Option 1</option>
    <option value="2">Option 2</option>
</select>

2 个答案:

答案 0 :(得分:0)

<script>
    var id=document.getElementById("TypeId").value; 
    if(id=="")
    { 
    //your code
        return false
    } 
</script>

如果用户选择注意,那么您可以使用此验证,然后您的页面将不会提交

答案 1 :(得分:0)

这是fiddle

$('#typeId').on('change',function(){
    if($(this).children('option[value=""]').length){
        $(this).children('option[value=""]').remove()
    }
});

它将从选择的内容中删除选项标签