Javascript Jquery中的.val在JSON请求后不起作用
我试图在异步请求json文件后更新select字段,但出现了一些问题。看看代码:Javascript Jquery中的.val在JSON请求后不起作用,javascript,jquery,json,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(fu
<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>
我是用$.when做的,因为只有在请求结束时,我才会更新select字段,但不幸的是,它不起作用。。。。函数getAllState是在js文件中定义的,它是一个json请求。如果我执行$'state'.valstate;在Javascript控制台中,它可以完美地工作。有人能帮我吗 根据评论:
州=;
将字符串变量$state指定为纯文本。根据值,这可能会导致Javascript分配一个数字,例如,如果$state=='7',则Javascript分配将是state=7;这将使状态为数字或可能未定义的对象。无论如何,要使.val可靠地工作,它应该是一个字符串。因此,将其更改为:
州=;
看看这是否解决了问题。当您使用此代码时,控制台中会出现什么错误。我有时会看到类型问题。假设$state是一个整数,因为如果它是一个字符串,那么它应该是;,您可能会遇到问题,因为HTML输入字段(例如,$‘state’是字符串)。通常最好是强制所有内容都使用字符串。GetAllState做什么?您能给出一个示例响应吗?我强烈建议通过var state=,使您的PHP变量对JS安全@输出,一个json文件:输出,一个输出,一个输出,一个json文件:输出,一个输出,一个输出,一个json文件:输出,一个输出,一个输出,一个json文件:输出,一个输出,一个输出,一个json文件:[{{州城市城市:城市:AC},{{州城市:城市:AL},{州城市:城市:AL},{{州城市城市:城市:城市:AM},,{州城市:城市:城市:城市:M},{{{州城市:城市:城市:去,{,{州城市:城市:州州城市:城市:城市:州城市:城市:去,{{州城市:城市:州城市:州城市:城市:去,{{州城市:州城市:州城市:州州城市:州城市:城市:城市:城市:城市:去,{,{,{{州城市:州城市:州城市:州城市:州城市:州市:PI},{州市:PR},{州市:RJ},{州市:RN}、{州市:RO}、{州市:RR}、{州市:RS}、{州市:SC}、{州市:SE}、{州市:SP}、{州市:TO}]如果将console.logstate放在.val语句之后,控制台中会显示什么?如果将console.logstate放在.val I语句之后,它将显示预期的值,一个字符串。我需要等待getAllStates的完整执行,因为它将用json请求的值填充select字段。因此,我可以选择其中一个s值使用.val语句。不幸的是,它一直不起作用。。。。。