填写选项不正确

时间:2018-04-12 12:51:39

标签: javascript jquery

我想点击按钮,然后使用选项501设置选择。但是,它仅适用于第一次单击。第二次点击然后它转到第一个选项。有没有人知道这个问题?

function test() {
  jQuery('.state_autocomplete option').removeAttr('selected');
  jQuery('.state_autocomplete').attr('value', 'Pernambuco');
  
  jQuery('.state_autocomplete option').each(function() {
    if (jQuery(this).val() == 501) {
      jQuery(this).attr('selected', 'selected');
    }
  });
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select id="billing:region_id" name="billing[region_id]" title="Estado" class="form-control validate-select state_autocomplete required-entry" style="" defaultvalue="" value="Pernambuco">
    <option value="">Selecione...</option>
    <option value="496">Minas Gerais</option>
    <option value="499">Paraná</option>
    <option value="498">Paraíba</option>
    <option value="497">Pará</option>
    <option value="500" >Pernambuco</option>
    <option value="501">Piauí</option>
</select>
<button onclick="test()" value='b'>aaa</button>

1 个答案:

答案 0 :(得分:3)

你的逻辑比它需要的要复杂得多。只需使用val()的设置器即可更改所选选项。您还应该删除按钮上的内联onclick处理程序。请改用不显眼的事件处理程序。像这样:

$('#set').click(function() {
  $('.state_autocomplete').val('501');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="billing:region_id" name="billing[region_id]" title="Estado" class="form-control validate-select state_autocomplete required-entry" style="" defaultvalue="" value="Pernambuco">
  <option value="">Selecione...</option>
  <option value="496">Minas Gerais</option>
  <option value="499">Paraná</option>
  <option value="498">Paraíba</option>
  <option value="497">Pará</option>
  <option value="500" >Pernambuco</option>
  <option value="501">Piauí</option>
</select>
<button id="set" value='b'>aaa</button>