[英]preventDefault and return false; if i add if else statement
我有这个js代码
$(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();
表单将提交事件event.preventDefault();
return false;
如果if块未注释,它仍然不起作用。 我的问题是为什么jquery会这样响应,如果我添加if语句preventDefault并返回false; 将无法工作,但如果我删除if语句或将其注释掉,则preventDefault并返回false; 会工作。有人可以解释为什么这样吗
问题是uPassword不是jQuery对象,它是一个字符串,因此after
String对象after
没有调用任何方法。 这应该给您带来诸如Uncaught TypeError: uPassword.after is not a function
错误Uncaught TypeError: uPassword.after is not a function
您的浏览器控制台中Uncaught TypeError: uPassword.after is not a function
。
$("#user_password").after("<p>Password can't be blank</p>");
另外,您还必须使用false值初始化submit
,例如
$(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();
}
});
});
演示: 小提琴
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.