gpt4 book ai didi

javascript - ajax 调用后输入值为空

转载 作者:行者123 更新时间:2023-11-28 19:57:26 28 4
gpt4 key购买 nike

我在 HTML 代码中单击按钮后进行了以下 AJAX 调用:

HTML:

<div id="singlemethod">
<input type="hidden" id="teachersol" value="">
[...]
<button type="button" id="run" onclick="javascript:play(1, 105, 2)">
<img src="./images/green_play.png" width="40px" height="40px"> </button>
</div>

JAVASCRIPT/AJAX:

function play(mn, id, nofm) {
for (i=1; i<=nofm; i++)
getSolution (i, id, mn);
executemethod (mn, id);
}

function getSolution (mn, id, actmn) {
$.ajax({
type: "GET",
url: "ajax/getteachsol.php",
data: "id="+id+"&number="+mn,
success: function(data){
$('#teachersol').val(data);
}
});
return false;
}

function executemethod (mn, id) {
var teach= document.getElementById('teachersol').value;
alert (teach);
[...]
}

如果我使用警报检查该值,它不会打印任何内容,但如果我使用 Chrome 检查该元素,我会在值字段中看到我期望的内容。知道为什么它不在执行方法中打印任何内容吗?可能是 AJAX 的问题(我对此还很陌生)?如果您需要任何其他信息,请询问!谢谢!

最佳答案

function getSolution (mn, id, actmn) {
$.ajax({
type: "GET",
url: "ajax/getteachsol.php",
data: "id="+id+"&number="+mn,
success: function(data){
$('#teachersol').val(data);
executemethod (mn, id);
}
});
return false;
}

请稍微更改一下代码,您可以在ajax函数中调用Executemethod

  function play(mn, id, nofm) {
for (i=1; i<=nofm; i++)
getSolution (i, id, mn);
//and remove from here
}

现在检查你是否得到相同的结果?虽然我还没有测试过

原因是您的警报在 ajax 完成之前调用

关于javascript - ajax 调用后输入值为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22296829/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com