我正在尝试使用ajax
POST 方法来验证我页面上的课程编号。 helper.html
发回正确的i值(true
或false
);当它是有效课程时,将ValidCourse
设置为true。但是当我在ajax调用之后检查ValidCourse
的值时;它始终是“false
”。为什么呢?
if (EnrollmentsCount == 0) { // validate course
var crsNum = "'" + $j("#course_number").val() + "'";
var ValidCourse = false;
// Ajax call to determine if course is valid course
$.ajax({
type: 'POST',
url: 'helper.html?crsNum=' + crsNum,
async: false,
success: function(i) {
if (i === 'true') {
ValidCourse = true;
}
}
});
if (!ValidCourse) { //it is always false whether it is a valid or invalid course
var errorMsg = "Please enter valid course number";
scroll('#course_number');
}
}
答案 0 :(得分:1)
直观地说,您的问题可能是您正在使用的===
运算符。
我认为你的html页面的返回值true
被javascript视为布尔值,然后i
有一个布尔值,但你正在检查'true'
中的字符串。因此,请尝试将您的测试设为if(i === true)
需要html页面的内容才能进一步调试配对!
答案 1 :(得分:1)
当回调方法执行完毕后,变量的范围结束。您可能需要考虑其他选项来检查值或将程序逻辑放在成功回调函数中。这样你就可以达到你想要的效果。
答案 2 :(得分:0)
我可以在helper.html中看到源代码吗?
也许你使用这个问题
var crsNum = "'" + $j("#course_number").val() + "'";
尝试使用
var crsNum = $("#course_number").val();
答案 3 :(得分:0)
helper.html的返回值包含换行符和空格。以下照顾它。谢谢大家!
winner:=count