如何以编程方式选择一个选项作为选定的选项?

时间:2015-06-19 04:31:44

标签: javascript angularjs drop-down-menu

我有一个看起来像这样的HTML

<select class="form-control"
    name="settings.provider"
    id="settings.provider"
    ng-model="settings.provider"
required>
    <option value="" disabled selected>Select Provider</option>
    <option value="thisProvider">thisProvider</option>
</select>

如何以编程方式选择“thisProvider”作为所选选项?

我尝试了这个但是没有用:

$ scope.settings.provider =“thisProvider”;

3 个答案:

答案 0 :(得分:1)

如果您的选项未与ng-repeat绑定,则可以使用ng-selected(https://docs.angularjs.org/api/ng/directive/ngSelected)将每个选项绑定到控制器中的设置。在你的控制器中,你为每个选项创建一个类似于$ scope.thisProviderSelected的布尔值,然后为你想要选择的选项设置为true。

<select class="form-control" name="settings.provider" id="settings.provider"
ng-model="settings.provider" required>
    <option value="" disabled selected>Select Provider</option>
    <option value="thisProvider" ng-selected="thisProviderSelected">thisProvider</option>
</select>

更好的方法可能是使用ng-repeat并将isSelected添加到列表中的每个项目。这样,如果您的列表发生变化,您将自动获得任何新项目。

答案 1 :(得分:1)

&#13;
&#13;
 
document.getElementById('settings.provider').value = 'thisProvider';
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<select class="form-control"
    name="settings.provider"
    id="settings.provider"
    ng-model="settings.provider"
required>
    <option value="" disabled>Select Provider</option>
    <option value="thisProvider">thisProvider</option>
</select>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

解决方案1:

创建活动:

<a href="javascript:void(0);" onclick="selectItemByValue(document.getElementById('settings.provider'),2)">change</a>

JavaScript功能

function selectItemByValue(elmnt, value){

  for(var i=0; i < elmnt.options.length; i++)
  {
    if(elmnt.options[i].value === value) {
      elmnt.selectedIndex = i;
      break;
    }
  }
}

找到所选值后,突破循环。

解决方案2:

var Person_ID = 2;
<a href="javascript:void(0);" onclick="document.getElementById('personlist').value=Person_ID;">change</a>