onchange函数可以正常运行,但我遇到$ .post函数无效的问题
这是html
<input type="checkbox" id="chk" value="3" onchange="checkradio(this.value)"/>
这是javascript
var total=0;
function checkradio(serid) {
var num = 0;
$.post( "getserprice.php",{ serid: serid}, function( data ) {
alert(data);
num = data;
})
if (document.getElementById('chk').checked) {
total = total + num;
} else {
total = total - num;
}
}
这是PHP
$price = 3;
echo $price;
答案 0 :(得分:1)
我不确定这是否是问题所在,但num
在传递给$.post
的成功回调下面的条件中使用时,{@ 1}}将不会被设置为任何内容。您应该将功能更改为:
function checkradio(serid) {
var num = 0;
$.post( "getserprice.php",{ serid: serid}, function( data ) {
alert(data);
num = data;
if (document.getElementById('chk').checked) {
total = total + num;
} else {
total = total - num;
}
})
}
答案 1 :(得分:0)
$ .post是一个异步函数,即;当它进行调用时,它不会等待成功事件发生并获取数据。相反,如果没有获取数据,它将执行下一个if条件。所以,我们会得到意想不到的结果。
var total=0;
function checkradio(serid) {
var num = 0;
$.post( "getserprice.php",{ serid: serid}, function( data ) {
alert(data);
num = data;
if (document.getElementById('chk').checked) {
total = total + num;
} else {
total = total - num;
}
}