我需要解决一个小问题。首先,代码有效,问题是在密码字段中,如果我在输入密码确认后修改密码,则会产生错误并且不会更新密码确认错误消息。我想这可能是因为我正在使用该功能keyup
,我应该使用哪一个或者您会建议我改进代码吗?
从已经非常感谢了!
function validInput(input){
var type = $(input).attr('type');
var id = $(input).attr('id');
var error=false;
var msg= "";
var str_e = /^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/;
if(id === "name"){
if (input.val().length === 0) {
error=true;
msg= "Porfavor ingresa un nombre";
}else if(input.val().length > 30){
error=true;
msg= "El nombre es muy largo";
}
}else if(id === "lastname"){
if (input.val().length === 0) {
error=true;
msg= "Porfavor ingresa un apellido";
}
}else if(id === "pass"){
if (input.val().length === 0){
error=true;
msg= "Porfavor ingresa una contraseña";
}
}else if(id === "pass2"){
if (input.val() !== $('#pass').val()){
error=true;
msg= "Las contraseña no coinciden";
}
}else if(id === "email"){
if (input.val() === 0 || !str_e.test(input.val())) {
error = true;
msg = "Corre electrónico invalido.";
}
}
if (error=== true) {
input.removeClass().addClass('error-input');
input.next().removeClass().addClass("error");
var next = input.next('.error');
$(next).children(".msg").text(msg);
}else{
input.removeClass().addClass('succes-input');
input.next().removeClass().addClass("succes");
var next = input.next('.succes');
$(next).children(".msg").text();
}
return input;
}
$('input').keyup(function(){
validInput($(this));
});
它不会更新消息,因为您没有验证它与 相同或不同
pass2
,就像您在id === "pass2"
那里验证它与当 id 是时你必须做同样的事情
pass
,还要考虑到当 id 是时pass2
,no se valida que no esté vacío el campo
建议:
Qué usar?
,一种选择是每次丢失los时使用focusout事件进行验证,尽管如果您想实时进行验证,使用的事件是有效的Focus
Input
您只是在它们不相同的情况下进行更新,但您不会放置其他情况,因为它是空的。
值得一说: