条件无效,仍在提交表格

时间:2018-12-06 09:32:48

标签: javascript jquery javascript-events

我遇到这种情况,必须检查2个密码输入,第一个是firstpass,第二个用于密码确认

我希望这两个输入的值都相同,并且超过7个字符

这是代码

$(document).ready(function(){
$(form).submit(function(event){
if (f_pass.value.length < 7){
event.preventDefault();
// show error and friendly error notification 
fpassCond = false;
}
else if (f_pass.value == ''){
event.preventDefault();
// show error and friendly error notification 
fpassCond = false;
}
else {
// show green message for validation and green border in the input
fpassCond = true;
}

if (c_pass.value.length < 7){
event.preventDefault();
// show error and friendly error notification 
cpassCond = false;
}
else if (c_pass.value == ''){
event.preventDefault();
// show error and friendly error notification 
cpassCond = false;
}
else {
// show green message for validation and green border in the input
cpassCond = true;
}


// last condition before submitting form

if (fpassCond == true && cpassCond == true) {
    form.submit();
} else{
    event.preventDefault();
// show errors
}
})

但是当我尝试运行它时 我输入了第一关,八个字符 ** cpass为空**

仍然可以提交

出了什么问题?

2 个答案:

答案 0 :(得分:1)

您的函数需要在参数列表中有一个事件

$(form).submit(function(event){
   event.preventDefault();

}

答案 1 :(得分:0)

最好让浏览器首先帮助您进行一些简单的验证。如果长度不超过7,请在输入中添加min="7",以使浏览器不提交表单。这是一个伪代码:

// Browser is making sure f_pass and c_pass is about 7 letters or more
const firstPass = f_pass.value; 
const secondPass = c_pass.value;

if (firstPass !== secondPass) {
  e.preventDefault();
// continue your error handling here
} else {
 // both pass is valid and the same, continue
}