无法在javascript

时间:2017-05-17 19:41:33

标签: javascript jquery html asp.net asp.net-mvc

我需要更改所选的'使用javascript在选择对象中使用html选项元素的属性。

我已经尝试过这个:Solution

这就是我所拥有的:

.cshtml

<div class="form-group form-group-default" id="divStateEUA">
   <label>Estado</label>
   <select id="listStateEUA" name="listStateEUA" data-init-plugin="select2" style="width: 100%">
      @foreach (var state in ViewBag.EUAStates)
      {
         <option>@state</option>
      }
     </select>
</div>

的javascript

<script>
    $(document)
        .ready(function () {
                 CheckState();
    });

   function CheckState() {
     if (selectedText == 'Estados Unidos') {
        var element = document.getElementById('listStateEUA');
        element.value = 'Chicago';
     }
   }
</script>

渲染html:

仍然无法正常工作。有什么想法吗?

3 个答案:

答案 0 :(得分:2)

value的{​​{1}}标记中缺少option个属性。

修改您的剃刀代码,使其在select标记中具有value属性,以便您可以根据值更改组合框选择:

option

现在在您的jquery代码中,您应该能够:

 @foreach (var state in ViewBag.EUAStates)
 {
    <option value="@state">@state</option>
 }

答案 1 :(得分:1)

您必须为选项提供值。你的JS正试图将选择设置为&#34; Chicago&#34;值,但不存在。 <option>Chicago</option> vs <option value="Chicago">Chicago</option>

&#13;
&#13;
function CheckState() {
  var element = document.getElementById('listStateEUA');
  element.value = 'chicago';
}

CheckState();
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
  <label>Estado</label>
  <select id="listStateEUA" name="listStateEUA">
    <option value="nevada">nevada</option>
    <option value="chicago">chicago</option>
    <option value="arizona">arizona</option>
  </select>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

Mike McCaughan建议(非常感谢),因为我正在使用select2插件,所以它有不同的方式来获取和设置值。

$("#select").select2("val"); //get the value
$("#select").select2("val", "CA"); //set the value

在此处找到答案:select2 plugin get and set values