下拉菜单选中后还是显示默认值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了下拉菜单选中后还是显示默认值相关的知识,希望对你有一定的参考价值。

有什么办法可以使选中下拉菜单后显示的还是默认的那个值(就是不让用户选)
最好给我些小例子(要完整代码的)

一种是将select的默认值首先设置成第一个, 或者你需要的某个一option, 然后将select设置为不可操作:
<select disabled="disabled">
<option value="default" selected="selected">Default</option>
<option value="value1">Value 1</option>
<option value="value2">Value 2</option>
<option value="value3">Value 3</option>
</select>

另一种方法是注册一个onchange的事件, 当选择的内容改变了, 就把它默认的那个option设置为selected = true; :
<select onchange="javascript: this.options[0].selected = true;">
<option value="default" selected="selected">Default</option>
<option value="value1">Value 1</option>
<option value="value2">Value 2</option>
<option value="value3">Value 3</option>
</select>
参考技术A 用js的onclick或者oncheng事件可以控制..本回答被提问者采纳 参考技术B <select disabled>
<option>1</option>
</select>

在AngularJS中为依赖下拉菜单选择默认值[重复]

【中文标题】在AngularJS中为依赖下拉菜单选择默认值[重复]【英文标题】:Selecting a default value for dependant dropdowns in AngularJS [duplicate] 【发布时间】:2017-12-20 16:46:07 【问题描述】:

我需要为两个相关的下拉菜单预先选择默认值。因此,在页面加载时,下拉菜单应显示类似“Automative”的内容,并选择了“Two Wheelers”。 (并且不使用 selected 属性,默认值必须通过 $scope 加载) 以下是工作下拉菜单的 Plunkr 链接。

http://plnkr.co/edit/3Xrpb4jBziWNZE9JVfts?p=preview

<select class="home_search_select" name="d1" ng-model="selectedd1" ng-options="cat.category_id as cat.category_name for cat  in categorydata track by cat.category_id" id="d1">
   <option value="">Select Category</option>
</select>

<select class="home_search_select" name="d2" id="d2" ng-disabled="!selectedd1" ng-model="selectedd2" ng-options="subcat.ID as subcat.Name for subcat in ((categorydata|filter:'category_id':selectedd1)[0].Subcategory) track by subcat.ID">
  <option class="home_search_select" value="">Select Sub Category</option>
</select>

【问题讨论】:

【参考方案1】:

如下为 selected1 赋值

$scope.selectedd1= 
    "category_name": "Automotive",
    "category_id": "1",
    "Subcategory": [
      "Name": "Two Wheeler",
      "ID": "1"
    , 
      "Name": "Four Wheeler",
      "ID": "2"
    , 
      "Name": "Heavy Moving Vehicles",
      "ID": "3"
    , 
      "Name": "Automobile Related",
      "ID": "4"
    ]
  ;

在第二个下拉菜单中修改 ng-options

<select class="home_search_select" name="d2" id="d2"
    ng-disabled="!selectedd1" ng-model="selectedd2" 
    ng-options="subcat.ID as subcat.Name for subcat in selectedd1.Subcategory track by subcat.ID">
      <option class="home_search_select" value="">Select Sub Category</option>
 </select>

要监听下拉列表中的变化,请使用ng-change 指令

<select class="home_search_select" name="d1" 
ng-model="selectedd1" 
ng-change="homeChanged()"
ng-options="cat as cat.category_name for cat  in categorydata track by cat.category_id" id="d1">
  <option ng-value="">Select Category</option>
</select>

注意:ng-options 改为包含整个对象

Updated Plunker

【讨论】:

不工作,子类别下拉列表为空,更改时也已损坏。我需要它像原版一样工作。 只需将$scope.selectedd2 = $scope.selectedd1.Subcategory[0];(而不是$scope.selectedd2 = "1";)添加到@Aravind 的答案中,它应该可以工作 @Andriy 如果可行,请点赞 不工作了...请再次检查我的查询。我需要选择两个下拉菜单。就像最初出现的带有“Two Wheeler”的“汽车”或带有“鞋类”的“时尚”。当我再次更改主要类别时,它应该填充所有匹配值并选择“选择子类别”的子类别。跨度> @Aravind,它不起作用,如果你添加到你的代码中它应该可以工作 $scope.selectedd2 = $scope.selectedd1.Subcategory[0]; 这是固定的 plunker - plnkr.co/edit/MfThyBndm6zRLxmtqe7p?p=preview

以上是关于下拉菜单选中后还是显示默认值的主要内容,如果未能解决你的问题,请参考以下文章

请教如何获取easyui-combobox下拉菜单的多个选中值

layui 表单 select 下拉菜单 怎么设置第二个为加载选中默认值

使用javascript将下拉菜单设置为默认值[重复]

c# 高手来帮帮忙ComboBox下拉菜单的问题

下拉菜单select,怎么设置默认值

jquery给下拉框设置默认值