HTML下拉列表 - 整理?

时间:2014-08-05 18:04:54

标签: javascript jquery html asp.net-mvc html.dropdownlistfor

我已经实施了一个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?

2 个答案:

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

  1. 这是不可能的。 <select>元素无法提供占位符值。因此,Razor采用的常见解决方法是添加另一个具有空value属性的选项。这出现在下拉列表中,因为它非常像该列表中的任何其他选项。这是您的表单验证,无论是客户端还是服务器端,都使其不是“有效”选项。

  2. 您需要提供更多信息以确定验证不再有效的原因。特别是,属性和模型中的任何相关属性都会有所帮助。请参阅@ RomanKo的答案。我不想在这里张贴同样的东西来窃取他的雷声。就我而言,我完全错过了它。