当前位置: 首页 > 知识库问答 >
问题:

从下拉列表中删除第一个空白项,并替换为默认选择选项文本

司寇安宜
2023-03-14

在我的项目中,有许多下拉列表。这些下拉列表的项是使用api服务从数据库加载的。因此,无论何时加载,空白选项都是所有项目的第一项。如何删除第一个空白选项并替换为默认文本选择。

控制器

$scope.EnclosureModel = "";

loadEnclosure();
function loadEnclosure()
{
    $scope.loading = true;
    var promise = ngservice.getClosureType();
    promise.then(function (resp) {
        $scope.EnclosureList = resp.data;
        $scope.loading = false;
    });
}

api调用按角度服务方法消耗

服务

this.getClosureType = function () {
    var res = $http.get("/api/Surge/GetEnclosure");
    return res;
};

以下是我的观点:

Enclosure type 
<a href="#" onclick="return false;" rel="EnclosureType">
    <img src="img/question.jpg" Border="0" style="vertical-align:middle; width:16px;" />
</a>

<br />

<select ID="Drp_EnclosureType_Option1" AutoPostBack="True" Class="form-control form-control-small" ng-model="EnclosureModel" ng-options="p for p in EnclosureList" ng-change="getConf();getNoCurr();getMaxCur();getMScr();getLoc();getIec();getmCOV();getsysV();getIncidents();getRemSignals();getalr();getRejc();getCount();">
    <option Value ="" selected="selected">--Select--</option>
</select>

项目从数据库中正确加载,但每次该空白选项处于第一位时。在检查了这么多帖子之后,我尝试了很多东西。我最后一次尝试

$scope.EnclosureModel={“selected”:空}

它完美地删除了第一个空白,但问题是其他下拉列表将根据此“ENCLOSURE”下拉列表的项目选择而改变。所以当我尝试使用上述其他下拉列表时,它们会发生变化并具有空项目。

我知道角度模型的行为是这样的,因为当没有项目被选中时,没有定义值。

但是如何从api服务加载数据的选项中删除第一个空白。

共有1个答案

孙福
2023-03-14

angularjs中填充下拉列表时,我遇到了类似的问题。我提出的解决方案是在选择框中使用第一个选项作为禁用的描述(请参阅下面的代码片段):

<div class="row">
    <div class="col-sm-6 col-md-5 col-lg-3">
        <label>Incident Type:</label>
        <select id="incidentTypeDropdown" class="select-style select-style-required" ng-model="causeData.incidentType" ng-change="incidentTypeOnChange(causeData.incidentType)">
            <option value="" disabled selected>Select Incident Type...</option>
            <option ng-repeat="incident in incidentTypeList" value="{{incident.incidentTypeID}}">
                {{incident.type}}
            </option>
        </select>
    </div>
</div>

此代码段中可能对您有所帮助的相关部分是第一个选项行:

<代码>

因此,此选项始终处于禁用状态,并作为我希望用户执行“选择事件类型...”的操作的说明这是网页上的结果:

我希望这种方法能解决你的问题。

 类似资料:
  • 问题内容: 我有一个很奇怪的要求,其中要求我默认在HTML的下拉菜单中没有选择任何选项。然而, 我不能用这个 因为,为此,我将必须进行验证以处理第一个选项。有人可以在没有将第一个选项作为select标签的一部分的情况下帮助我实现此目标吗? 问题答案: 也许这会有所帮助 将默认显示。但是,如果您选择一个选项,则将无法再次选择它。 您也可以通过添加一个空白来隐藏它 因此它将不再显示在列表中。 选项2

  • 问题内容: 我是AngularJS的新手。我进行了很多搜索,但是并不能解决我的问题。 我第一次在选择框中得到一个空白选项。 这是我的HTML代码 JS 但这似乎不起作用。我该如何解决?这是JSFiddle演示 问题答案: 当传递给的一组选项中不存在被引用的值时,将生成空值。这样做是为了防止意外选择模型:AngularJS可以看到初始模型是未定义的还是未在选项集中,并且不想自行决定模型的值。 简而言

  • 我在JSFIDLE示例中有以下代码 问题是,当用户单击“添加新记录”时,它会添加一个新项目,其中设施名称下拉列表显示列表中的第一个项目。如果用户单击“更新”,则会保存记录,但会将设施名称清空。原因是,下拉列表中确实没有选定项目。我之所以知道这一点,是因为所选值在传递给控制器代码时为空。所以,我真的很想知道如何 不显示列表中的第一个项目,直到用户在列表中实际选择它或 将选定的项目设置为列表中的第一个

  • 我想在选择另一个select元素的一个选项时显示一个select元素,在选择另一个选项时隐藏它。 这是JavaScript: 感谢任何帮助。谢谢

  • 我有一个Windows Phone应用程序,其中一个ListPicker绑定到一个ObservableCollection和一个选定的项目: 在ViewModel中: 当我试图从按钮处理程序的列表中删除所选项目时,我得到一个InvalidOperationException(SelectedItem必须始终设置为有效值): 我希望将SseltedCon条件设置为null(这实际上是列表中的第一个项

  • 下拉列表中有选项列表和默认的“选择系列”选项,当没有选择其他选项时。现在我有一个清除按钮,它将从下拉列表中清除用户选择,这样用户就可以选择其他下拉列表。问题是,当我清除它时,也会删除我的“选择系列”选项。 为了更好地理解它,假设我在下拉列表中有选项1,选项2和选项3,当没有选项被选中时,默认的“select option”(选择选项)。我想要的是,当用户选择选项1、2、3中的任何一个时,当我点击清