在JSON请求后,Jquery中的.val无效

时间:2017-05-29 04:17:59

标签: javascript jquery json

我正在尝试在对json文件的异步请求之后更新select字段,但是有些错误。看看代码:

<script>                
  state = <?= $state ?>; //..var of php that I'll use to set a select field
  idCity = <?= $idCity ?>; //..var of php                
  $.when(getAllStates()).done(function(){ //..using when to execute something only after the function
    $('#state').val(state);  //..set the select field with var state - not working!
  });
</script>

我是使用 $。时间来做的,因为只有在请求结束时我才会更新选择字段,但遗憾的是它无法正常工作....函数 getAllStates() 在js文件中定义,它是一个json请求。如果我在Javascript控制台中执行 $('#state')。val(state); ,则效果很好。有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

基于评论: state = <?= $state ?>; 将字符串变量$ state指定为纯文本。根据值,可能会导致数字的Javascript分配(例如,如果$ state ==&#39; 7&#39;那么Javascript分配将为state = 7;,这将使state数字)或可能未定义的对象。在任何情况下,为了使.val()可靠地工作,它应该是一个字符串。所以改成它: state = '<?= $state ?>'; 并看看是否能解决问题。