我正在撰写一个可以更改所有用户个人资料设置的表单。我已正确设置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();
}
}
}
}
});
任何帮助?
答案 0 :(得分:1)
您可能希望在click方法的开头声明var valid = true
并在任何检查失败时将其设置为false,然后在验证方法结束时执行检查if(!valid) { e.preventDefault() }
停止事件传播。您的处理程序现在无法阻止事件传播。为了实现这一点,你应该改变你的匿名点击处理函数来接受事件作为我称之为“e”的参数,以便你可以缩短提交。