我如何将ajax成功函数的值传递给我的javascript fxn。 在这里我想确定是否使用“pass”变量的值提交表单 但即使 x = 60,pass 也始终等于 0。为什么?
<form id="stdform" method="post" action="registrtn.php" onsubmit=" return submitForm()">
<input type="text" id ="age" value="30">
<input type ="hidden" id="std" value="STD102"><!--the age for student ID is retrieved frm db using ajax-->
...
<button>submit form </button>
</form>
<script>
function submitForm(){
var ageLimit = document.getElementById("age").value;
var stdid = document.getElementById("std").value ;
var pass = 0;
$.ajax({
type:'POST',
url: 'pre-reg.php',
data:{
'id':stdid
},
success:function(result){
var x = parseInt(result);
if (x >= ageLimit) {
pass = 1;
}
checkvalue(pass);
}
});
}
function checkvalue(pass_val){
if (pass_val==1){
document.getElementById("stdform").submit();
}else{
alert(pass_val);//this shows up=>0, on false condition
document.getElementById("errormsg").style.display="block";//this escapes because form already submits
}
}
</script>
最佳答案
您可以创建一个函数
,当您的ajax 成功
执行时将调用该函数,并将结果传递给该函数以进行进一步处理。因此,您的ajax将如下所示如下:
function submitForm() {
var ageLimit = document.getElementById("age").value;
var stdid = document.getElementById("std").value;
var pass = 0;
$.ajax({
type: 'POST',
url: 'pre-reg.php',
data: {
'id': stdid
},
success: function(result) {
var x = parseInt(result);
if (x >= ageLimit) {
pass = 1;
}
check_values(pass); //call function
}
});
}
//pass value
function check_values(pass_val) {
if (pass_val == 1) {
//submit form
document.getElementById('stdform').submit();
} else {
alert("something not right")
}
}
您的表格:
<form id="stdform" method="post" action="registrtn.php">
<input type="text" id ="age" value="30">
<input type ="hidden" id="std" value="STD102"><!--the age for student ID is retrieved frm db using ajax-->
...
<button onclick="submitForm()">submit form </button>
//^^onclick added
</form>
关于java - 从 ajax 成功调用传递值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62232448/