Javascript 引导选择每次都选择错误的选项。

Javascript 引导选择每次都选择错误的选项。,javascript,angularjs,twitter-bootstrap,bootstrap-select,Javascript,Angularjs,Twitter Bootstrap,Bootstrap Select,我在Angular中使用bootstrap select bootstrap select v1.7.2。当我从下拉列表中选择某个选项时,它会选择另一个选项 Plunker在此处设置: (代码位于dashboard.html和dashboard.js中) 我就是这样创造的。引导下拉列表是启动下拉列表的指令 <form role="form" name="frmVariableConfig" ng-submit="vm.saveChanges()"> <se

我在Angular中使用bootstrap select bootstrap select v1.7.2。当我从下拉列表中选择某个选项时,它会选择另一个选项

Plunker在此处设置:

(代码位于dashboard.html和dashboard.js中)

我就是这样创造的。引导下拉列表是启动下拉列表的指令

  <form role="form" name="frmVariableConfig" ng-submit="vm.saveChanges()">
        <select ng-model="vm.CurrCustomer.Logic" name="ddlLogic" check-validation class="validate[required]" bootstrap-dropdown >
           <option ng-repeat="logic in vm.Logics" value="{{logic.value}}">{{logic.displayName}}</option>
        </select>
        <button type="submit" class="btn btn-sm text-right">Save</button>
     </form>

{{logic.displayName}
拯救

您应该使用ng选项填充选择输入的选项元素

像这样:

<select ng-model="vm.CurrCustomer.Logic" data-ng-options="logic.displayName for logic in vm.Logics track by logic.value" name="ddlLogic" check-validation class="validate[required]" bootstrap-dropdown >
    <option value="">Select...</option>
</select>

选择。。。

编辑

使用以下命令:

<select ng-model="vm.CurrCustomer.Logic" data-ng-options="logic.displayName for logic in vm.Logics" check-validation class="validate[customFunc]" bootstrap-dropdown>
         <option style="display:none" value="">Select</option>
</select>

挑选

其中,
customFunc
是一个新的自定义验证函数,用于检查所选值是否为

,这将解决您的问题。您需要一个空白状态选项。另外,它有助于使用ng选项,而不是在选项中使用ng repeat。希望这能解决你的问题

<div ng-controller="dashboard as vm">
   <div class="block-area">
      <div class="row col-md-12 ">
         <h3 class="block-title">  {{vm.title}}</h3>
         <form role="form" name="frmVariableConfig" ng-submit="vm.saveChanges()">
            <select required ng-model="vm.CurrCustomer.Logic" name="ddlLogic" check-validation class="validate[required]" ng-options="logic.displayName for logic in vm.Logics track by logic.displayName" bootstrap-dropdown >
               <option value="">Pick One</option>
            </select>
            <button type="submit" class="btn btn-sm text-right">Save</button>
         </form>
      </div>
   </div>
</div>

{{vm.title}
挑一个
拯救

它起作用了,但验证class=“validate[required]”无效。意味着即使在需要选择时,它仍在调用提交函数。如果我拿出选择。。。验证是有效的,但随后我得到了错误选择的相同行为。好吧,我做了一些挖掘:问题是下面这个空选项然后被bootstrap下拉指令作为实际选项处理。具体来说,它在启动下拉列表js运行时出现在DOM中,并将其作为实际选项读取;这是plunker,我想是验证引擎出了问题。是的,请查看我在主帖子中的编辑,了解我的建议。它工作了,但验证class=“validate[required]”没有效果。意味着即使在需要选择时,它仍在调用提交函数。如果我拿出选择。。。验证是有效的,但是我得到了同样的错误选择行为。你可以将
必需的
添加到
中,这样会阻止提交。但验证似乎没有正确启动。你到底想在验证中展示什么?您使用这些指令而不是仅使用带
ng options
ng form
的引导CSS有什么具体原因吗?是的,我的表单使用jquery验证引擎,选择是引导选择。这两个指令实际上都启动了它们。Check validation启动jquery验证引擎,另一个启动引导-选择Yes我看到了这两个,我只是好奇是否确实需要同时使用这两个/其中之一(验证引擎和选择是引导引导选择)。这两个函数似乎都可以通过AngularJS库复制。特别是:我想这是一个很好的建议。一定会考虑它