2015-07-22 66 views
0

我有这样的JS代码preventDefault并返回false;如果我添加如果else语句

$(document).ready(function(){ 

    $("#frm_registration").submit(function(event){ 
     var submit = false; 

     termsIsChecked  = $("#user_terms_of_service").is(":checked"); 
     uEmail    = $("#user_email").val(); 
     uPassword   = $("#user_password").val(); 
     uConfirmPassword = $("#user_password_confirmation").val(); 
     uFirstName   = $("#user_firstname").val(); 
     uLastName   = $("#user_firstname").val(); 
     uContactNumber  = $("#user_firstname").val(); 
     uOtherInformation = $("#user_firstname").val(); 


     // if(uPassword.length === 0){ 
     // uPassword.after("<p>Password can't be blank</p>"); 
     // submit = false; 
     // } 

     if(submit === false){ 
      event.preventDefault(); 
     } 
    }); 
}); 

如果我去掉IF块的形式,如果我改变event.preventDefault();return false;如果IF块是取消注释它仍然无法工作将提交事件。我的问题是为什么jquery像这样响应,如果我添加if语句preventDefault返回false;不会工作,但如果我删除如果语句或注释掉preventDefault并返回false;将工作。有人可以解释为什么它像这样

+0

有没有在您的浏览器控制台 –

+0

任何错误,为什么我不知道,因为有是没有错误..我甚至尝试清除缓存先生 –

回答

2

问题是uPassword不是一个jQuery对象,它是一个字符串,因此没有方法称为after String对象。在您的浏览器控制台中应该会出现如Uncaught TypeError: uPassword.after is not a function这样的错误。

$("#user_password").after("<p>Password can't be blank</p>"); 

你也将有值false像

$(document).ready(function() { 

    $("#frm_registration").submit(function (event) { 
     var submit = true; 

     termsIsChecked = $("#user_terms_of_service").is(":checked"); 
     uEmail = $("#user_email").val(); 
     uPassword = $("#user_password").val(); 
     uConfirmPassword = $("#user_password_confirmation").val(); 
     uFirstName = $("#user_firstname").val(); 
     uLastName = $("#user_firstname").val(); 
     uContactNumber = $("#user_firstname").val(); 
     uOtherInformation = $("#user_firstname").val(); 


     if (uPassword.length === 0) { 
      $("#user_password").after("<p>Password can't be blank</p>"); 
      submit = false; 
     } 

     if (submit === false) { 
      event.preventDefault(); 
     } 
    }); 
}); 

演示初始化submitFiddle

+0

感谢您的快速答复先生。我在看那部分 –