我遇到这种情况,必须检查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为空**
仍然可以提交
出了什么问题?
答案 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
}