默认选择基于输入值的选项

时间:2015-09-09 02:34:03

标签: javascript jquery html ajax

我的表单上有以下select

<select id="select-1">
    <option value="11">Option 11</option>
    <option value="12">Option 12</option>
    <option value="13">Option 13</option>
</select>

隐藏输入

<input id="hidden-input-1" value="13">

当我的页面加载时,hidden-input-1的值可能是11,12或13.我希望将我的选择默认为此输入的值可能是什么。到目前为止,我已尝试使用.val():

进行设置
$( document ).ready(function() {
    /*...
         do AJAX stuff to set input value
    ...*/
    $("#select-1").val($("#hidden-input-1").val());
});

只返回空白选择。关于如何指出这个的任何想法?

3 个答案:

答案 0 :(得分:1)

$("#hidden-input-1").val('12');
var value = $("#hidden-input-1").val();
alert(value);
$("#select-1").val(value);

FIDDLE

答案 1 :(得分:1)

当你没有加载到DOM中时,你试图访问这些元素,所以你没有得到任何价值,下面是正确的方法。

&#13;
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="select-1">
  <option value="11">Option 11</option>
  <option value="12">Option 12</option>
  <option value="13">Option 13</option>
</select>
<input id="hidden-input-1" value="13">
<script>
  $(document).ready(function() {
    $("#select-1").val($("#hidden-input-1").val());
  });
</script>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

/*... do AJAX stuff to set input value ...*/

$.ajax()是异步的; $("#select-1").val($("#hidden-input-1").val());显示为同步,可以在$.ajax()完成设置隐藏input值之前调用吗?如果在$.ajax()成功之后,错误回调。

尝试在ajax调用的完整处理程序中调用$("#select-1").val($("#hidden-input-1").val());

$.ajax().then(function() {
  /*...
     do AJAX stuff to set input value
...*/
  // set `select` value when `input` value set
  $("#select-1").val($("#hidden-input-1").val());

}, function err(jqxhr) {
  console.log(jqxhr.status)
})

`