所以我正在使用 jQuery 和 PHP 创建一个小型在线测验应用程序......
它的jquery部分是当我点击提交它“验证”答案并突出显示他们选择的答案并告诉他们是否正确或错误...它的PHP部分在那里得分并且如果他们得到4/5吧,它发送一封电子邮件给管理员给他们一个免费礼物,如果他们得到少于4个正确他们可以选择再拿它...
我的问题是在jquery验证后发送帖子数据,它根本就不起作用......这里是我试过的片段示例...
quiz.submit(function () {
if (validateQues1() & validateQues2() & validateQues3() & validateQues4() & validateQues5() & validateQues6()) {
$.post('includes/validation.php');
return true;
} else {
return false;
}
});
validateQues1看起来像这样:
function validateQues1() {
var selectedAnswer = $('input[name=q1]:checked', '#quiz').val();
if (selectedAnswer == 'cartilage') {
answer1.addClass("correctAnswer");
$("#ques1 :radio:checked").before("Correct!");
} else {
$("#ques1 :radio:checked").parent().addClass("wrongAnswer");
$("#ques1 :radio:checked").before("Incorrect!");
}
}
感谢您提前提供任何帮助,非常感谢! 〜SKV
答案 0 :(得分:2)
你正在使用位OR而不是逻辑OR。
quiz.submit(function () {
if (validateQues1() && validateQues2() && validateQues3() && validateQues4() && validateQues5() && validateQues6()) {
$.post('includes/validation.php');
return true;
} else {
return false;
}
});
您的ValidateQues
函数必须具有返回布尔值,如下所示:
function validateQues1() {
var selectedAnswer = $('input[name=q1]:checked', '#quiz').val();
if (selectedAnswer == 'cartilage') {
answer1.addClass("correctAnswer");
$("#ques1 :radio:checked").before("Correct!");
return true;
} else {
$("#ques1 :radio:checked").parent().addClass("wrongAnswer");
$("#ques1 :radio:checked").before("Incorrect!");
return false;
}
}
您必须更新所有validateQues
功能才能返回true
/ false
。