在jQuery Validation无法正常工作后发送帖子数据

时间:2011-11-14 16:26:54

标签: php jquery post

所以我正在使用 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

1 个答案:

答案 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