Jquery值不更新
jquery value not updating
function addrewarddb()
{
var rval="98";
$.post("db/mkreward.php",{
proid:getURLParameter("id")
},function(data){
rval="99";
alert(rval);
});
alert(rval);
return rval;
}
函数执行时返回98而不是99。两个警报显示的是98,然后是99。如何使我的函数返回99。我认为这里的问题是函数返回之前从服务器页面的响应mkreward.php.我如何能使函数返回后从服务器
Post call是异步的
这意味着函数在HTTP请求完成之前返回。
然后,当$.post()调用结束时,它会更新变量并发出警告。
从jquery文档:
async Boolean默认值:true默认情况下,发送所有请求异步(即默认设置为true)。如果你需要同步请求,将此选项设置为false。跨域请求和dataType: "jsonp"请求不支持同步操作。注意,同步请求可能会暂时锁定浏览器,在请求处于活动状态时禁用任何操作。从jQuery 1.8开始,不赞成对jqXHR ($.Deferred)使用async: false;你必须使用完整/成功/错误回调。
将返回值放入回调函数:
function addrewarddb()
{
var rval="98";
$.post("db/mkreward.php",{
proid:getURLParameter("id")
},function(data){
rval="99";
alert(rval);
return rval;
});
}
您有async
或post
调用,并且您的返回语句将在回调函数调用之前执行。您可以从addrewarddb()
返回post
对象,并像这样对其调用complete。
function addrewarddb()
{
var rval="98";
return $.post("db/mkreward.php",{
proid:getURLParameter("id")
})
}
addrewarddb().complete (function (data){
alert( data);
return data;
});
你可以使用
创建一个同步的jquery请求$.ajax({
type: 'POST',
url: url,
data: data,
success: success,
dataType: dataType,
async:false
});
或者等待回调函数得到结果
这是因为 $.post
异步工作。 $post
是 $.ajax
的简写。为了能够告诉 $.post
同步(这是你想要的),你必须使用$.ajax
。
你的函数的翻译应该是这样的:
function addrewarddb() {
var rval = "98";
$.ajax({
type: "POST",
url: "db/mkreward.php",
data: { proid: getURLParameter("id") },
async: false,
success: function (msg) {
rval = "99";
alert(rval);
},
error: function (jqXHR, textStatus) {
}
});
alert(rval);
return rval;
}
相关文章:
- jQuery-更新jQuery.ajax().done()中点击的图像
- 如何更新jQuery Mobile全局弹出窗口的位置
- 更新jquery后文件上传不起作用
- 在ReactJs中更新组件时更新jQuery slick carousel
- 拖动事件后更新jQuery中jqxListBox的列表
- 如何停止将值追加到仅更新 jQuery 中的值
- 无法多次更新 jQuery 中 Ajax 调用的全局变量
- 使用 google api 地址更新 jQuery jqgrid 列
- 使用 Angular JS 动态更新 jQuery UI 属性的最佳方法
- 更新 jQuery 中的全局变量
- 如何在键入时更新 jQuery 值
- 尝试使用 mysql 和 php 更新 jquery 变量
- 更新 jQuery UI 工具提示上的数字
- 动态更新jquery中的iframe内容
- 更新jquery插件选项而不刷新页面
- 如何使用客户端数据更新jQuery.dataTables中的所有数据
- 以编程方式根据值更新jQuery滑块的位置
- ASP.NET:如何更新JQuery或Javascript中的隐藏字段
- 更新:jquery对话框模式单选按钮未选择ajax
- 在Ajax调用期间更新jQuery项