AngularJS系列之select下拉选择第一个选项为空白的解决办法

前端之家收集整理的这篇文章主要介绍了AngularJS系列之select下拉选择第一个选项为空白的解决办法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

点击打开链接


今天给大家介绍一下AngularJS系列之select下拉选择第一个选项为空白的解决办法。
相信大家也经常遇到这种情况吧:在使用AngularJS中的select组件开发的时候,莫名其妙的第一个选项就变成空白了,而且选中其中非空白的地方,第一个选项的空白位置又奇妙的消失了。
今天就举几个例子给大家介绍一下种种情况的处理办法,下面首先给出一个具体例子介绍一下:

@H_502_17@
[html] view plain copy
  1. <!DOCTYPEhtml>
  2. <html>
  3. headMetacharset="utf-8"scriptsrc="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></scriptbodydivng-app="myApp"ng-controller="myCtrl"p>选择网站:selectng-model="selectedSite"optionvalue="">请选择option><!--这里是重点,必须将value值设置成空字符串,否则第一个选项还是会留空白出来-->
  4. optionng-repeat="xinsites"value="{{x.url}}">{{x.site}}selecth1>你选择的是:{{selectedSite}}div varapp=angular.module('myApp',[]);
  5. app.controller('myCtrl',function($scope){
  6. $scope.sites=[
  7. {site:"Google",url:"http://www.google.com"},
  8. {site:"Runoob",url:"http://www.runoob.com"},
  9. {site:"Taobao",url:"http://www.taobao.com"}
  10. ];
  11. });
  12. >该实例演示了使用ng-repeat指令来创建下拉列表,选中的值是一个字符串。>
第一种办法就是在select的下面加上一个默认option,不过有一点必须特别注意,就是在option中的value值必须设置为“”(也就是空字符串),否则上面第一个选项还是会留空白出来。

这样可能就会有人说我第一个option要是不想获取的value值为空,那该怎么办,比如我第一个value值想设置成“请选择”这个字符串呢?

这种情况也好解决,下面看一下下面这个例子,大家就会明白要怎么做了。

copy

    optionvalue="请选择"<!--注意这个地方要和下面的设置的值要一致-->
  1. $scope.selectedSite="请选择";<!--注意这个设置值,要和上面的value值相一致才可以-->
  2. });
  3. 从例子中就可以看出,其实就是在value中添加自己想要的值信息,然后再控制器中进行传初始值。 但是这个时候大家可能会又有一个问题,就是我如果想第一个不想要默认值呢,我就想把数据的任意一个值放在第一个选项里面呢,而且还不能留空白在上面。

    这种情况其实也好解决,下面就再看一个例子:

    copy
@H_300_301@ varapp=angular.module('myApp',[]);
  • app.controller('myCtrl',function($scope){
  • $scope.sites=[
  • {site:"Google",248); line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important; list-style-position:outside!important"> {site:"Runoob",108); list-style-type:decimal-leading-zero; color:inherit; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important; list-style-position:outside!important"> {site:"Taobao",url:"http://www.taobao.com"}
  • ];
  • $scope.selectedSite=$scope.sites[0].url;<!--这里只要把想要第一次出来的url放在这里就可以实现option默认出现的效果了-->
  • 从上面的例子可以很明显的看出,只要在控制器中添加相应的初始值,就可以实现select中默认选中的效果了。 这样基本就全部解决了select中第一个选项留空白的问题了。


    项目中使用ng-options时,发现循环出来的select的第一个option为空,页面审查元素如下图:

    页面效果

    代码如下:

     
     
    • 1
    • 1
    <select ng-model="selectUser" ng-options"i.NAME for i in users"></select>

    这不但影响样式,而且影响用户体验。那么怎么删除select第一个为空的option呢?
    解决办法是在这个select里加上这样一句话就好了:

      
      
  • 1
  • <option value="" selected hidden></option>

    这样的话,循环出来的select第一个为空的option就不会显示了,审查元素如下:

    页面效果如下:

  • 猜你在找的Angularjs相关文章