【问题标题】:How can I set a select element's itemindex to -1?如何将选择元素的 itemindex 设置为 -1?
【发布时间】:2016-04-20 20:53:19
【问题描述】:

我在我的视图代码中动态地将值添加到一个选择元素,就像在我的视图/.cshtml 中一样:

@model WebAppRptScheduler.Models.HomeModel
@using System.Data
@{
    DataTable dtUnits = Model.Units as DataTable;
    var units = from x in dtUnits.AsEnumerable()
    select new
    {
        unit = x.Field<string>("unit")
    };
.....    
    <select class="form-control, dropdown" name="unitsselect">
        @foreach (var field in units)
        {
           <option id="selItem_@(field.unit)" value="@field.unit">@field.unit</option>
         }
    </select>
..... 

这些值填充得很好,但选择元素中的第一个选项会自动被选中。如何将其设置为 -1 以便不选择任何内容?我可以在上面的 foreach 循环之后执行它,还是必须使用 javascript 执行它,或者我可以在 C# 代码隐藏文件中执行它?

【问题讨论】:

  • 我认为您必须在开始时在集合中添加空值,以便将其选中,或者您可以在循环之前执行此操作

标签: javascript c# html asp.net-mvc razor


【解决方案1】:

您可以在 foreach 之外添加一个默认选项:

<select class="form-control, dropdown" name="unitsselect">
//_________________________^ Remove this comma
     <option value="0" selected>Choose unit please</option>
     @foreach (var field in units)
     {
        <option id="selItem_@(field.unit)" value="@field.unit">@field.unit</option>
     }
</select>

【讨论】:

  • 有效;但需要逗号,否则选择出现在标签下方,我想在左边。
  • 不需要逗号。 class 属性是一个空格分隔的类名列表。只需删除表单控件,
【解决方案2】:

像这样:

<select class="form-control, dropdown" name="unitsselect">
    <option disabled selected value> -- select an option -- </option>
    @foreach (var field in units)
    {
        <option id="selItem_@(field.unit)" value="@field.unit">@field.unit</option>
    }
</select>

-- select an option -- 默认显示。但是如果你选择了一个选项,你将无法再选择它

来源:default select option as blank

【讨论】:

    【解决方案3】:

    如果您不喜欢 元素的 ID

    @section scripts
    {
        <script type="text/javascript">
            document.getElementById("unitselect").selectedIndex = -1;
            ...
    

    【讨论】:

    • 谢谢;我最终可能会使用它,但现在“提醒”条目还可以。
    【解决方案4】:

    我认为您必须在开始时在集合中添加空值,以便将其选中,或者您可以在循环之前执行此操作

    <option value="0">Please select</option>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-04
      • 2017-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-06
      • 2015-07-23
      相关资源
      最近更新 更多