【问题标题】:default select option as blank mvc razor默认选择选项为空白 mvc razor
【发布时间】:2017-04-15 19:50:00
【问题描述】:

我希望null option selected 在下拉菜单中默认显示为--Select--。我正在尝试这样做

<select class="form-control" asp-for="EducationId" asp-items="@(new SelectList(Model.educations, "Id", "Name"))"><option>--Select--</option></select>

它在选择--Select-- 选项的情况下完美加载下拉列表,但它没有使其值null。当我尝试在不选择任何选项的情况下获得它的价值时

$('#EducationId option:selected').text()

它返回具有--Select--的字符串

但我希望它返回 null

我通过添加disabled selected 尝试了this solution,但根据其声明,一旦我选择任何选项,它就不允许我再次选择第一个选项。但在我的情况下,此下拉菜单是可选的,用户可以取消选择任何选定的选项。

我怎样才能使这个下拉菜单成为可选的?

我们将不胜感激。

【问题讨论】:

  • 为什么不使用 $('#EducationId option:selected').val()
  • $('#EducationId option:selected').text() 将返回选项标签中的文本。正如@Usman 指出的那样,使用 $('#EducationId option:selected').val() 来获取该选项标签的实际值。
  • 我试过val() 但它也返回--Select--
  • 如果选择第一个选项,&lt;option value=""&gt;--Select--&lt;/option&gt; 然后var selected = $('#EducationId'),val(); 将返回null
  • 不,它返回空字符串。 @StephenMuecke

标签: javascript jquery asp.net-mvc asp.net-mvc-4 razor


【解决方案1】:

educations 是一组您要呈现给用户以供选择的项目。只需像这样添加另一个项目(我假设它被称为Education):

Model.educations.Insert(0, new Education{Id = -1, Name = "--Select--" });

然后检查该项目是否已被选中并做任何你需要做的事情。

【讨论】:

  • 从您的回答中得到灵感,我通过小改动处理了我的问题。asp-items="@(new SelectList(Model.educations, "Id", "Name"))"&gt;&lt;option value="-1"&gt;&lt;/option&gt; 并检查 null/not selected value if ($('#EducationId').val() == '-1')
  • 我从你那里得到了想法。所以在这里我将其标记为答案。谢谢你:)
猜你喜欢
  • 2012-01-26
  • 1970-01-01
  • 1970-01-01
  • 2015-11-13
  • 2019-01-16
  • 1970-01-01
  • 2016-08-20
相关资源
最近更新 更多