jQuery条件和& Ajax问题

时间:2011-03-09 19:29:57

标签: jquery ajax conditional

我正在撰写一个可以更改所有用户个人资料设置的表单。我已正确设置HTML和PHP并正常工作,但使用jQuery条件和& Ajax被证明是一个问题。

如果有电子邮件,它应验证电子邮件。然后,它应该确保更改不是密码更改(如果是,确保密码匹配然后发布),然后发布表单是否有效。似乎没有考虑任何条件和帖子。

     $("profSet").validate({
        rules: {
            chem: {
                email: true
            }
        }
     });

    $('#subSet').live('click',function() {
        if($("#chfn").val() == 0 && $("#chln").val() == 0 && $("#chpw").val() == 0 && $("#chpw2").val() == 0 && $("#chem").val() == 0)
        {
            if($("#profSet").valid())
            {
                if($("#chpw").val() == "" && $("#chpw2").val() == "")
                {
                    $.post('php/profSet.php', $('#profSet').serialize(), function(){
                        $('#profSet').hide();
                        $('#success').show();
                    });
                }
                else
                {
                    if($("#chpw").val() == $("#chpw2").val())
                    {
                        $.post('php/profSet.php', $('#profSet').serialize(), function(){
                            $('#profSet').hide();
                            $('#success').show();
                        });
                    }
                    else
                    {
                        $('#error').show();
                    }
                }   
            }
        }
    });

任何帮助?

1 个答案:

答案 0 :(得分:1)

您可能希望在click方法的开头声明var valid = true并在任何检查失败时将其设置为false,然后在验证方法结束时执行检查if(!valid) { e.preventDefault() }停止事件传播。您的处理程序现在无法阻止事件传播。为了实现这一点,你应该改变你的匿名点击处理函数来接受事件作为我称之为“e”的参数,以便你可以缩短提交。