我已经实施了一个html下拉列表,一切似乎都很好,只想整理一下:
1)当订单屏幕加载'选择'在下拉列表中显示为初始选项。当用户点击下拉列表时,选择'仍然出现。我想隐藏'选择'当选择下拉菜单时,视图中的一些选项我不知道了吗?
2)验证明智,我无法下订单,直到从下拉列表中选择一个选项。这很好,但是在我使用文本框并得到一个漂亮的大红色错误消息之前,现在我什么也得不到,我怎样才能通知用户必须选择一个选项?
<div class="editor-field">
@Html.DropDownListFor(x => x.Selected_BicycleModelId, Model.BicycleModels, "Select")
@Html.ValidationMessageFor(model => model.Order.BicycleModel)
</div>
更新
@Html.ValidationMessageFor(model => x.Selected_BicycleModelId)
解决了验证消息问题(感谢Roman Ko)。关于“选择”的任何想法。消失 - JQuery?
答案 0 :(得分:2)
试试这个:
@Html.ValidationMessageFor(model => x.Selected_BicycleModelId)
当涉及到选择&#39;标题,您可以尝试使用 - 例如 - jQuery:
删除它$(document).on('change', '#Selected_BicycleModelId', function () {
$("#Selected_BicycleModelId option[value='']").each(function () {
$(this).remove();
});
});
有关详细信息,请参阅jQuery remove options from select。
答案 1 :(得分:1)
这是不可能的。 <select>
元素无法提供占位符值。因此,Razor采用的常见解决方法是添加另一个具有空value
属性的选项。这出现在下拉列表中,因为它非常像该列表中的任何其他选项。这是您的表单验证,无论是客户端还是服务器端,都使其不是“有效”选项。
您需要提供更多信息以确定验证不再有效的原因。特别是,属性和模型中的任何相关属性都会有所帮助。请参阅@ RomanKo的答案。我不想在这里张贴同样的东西来窃取他的雷声。就我而言,我完全错过了它。