表单验证检查两个字段是否相等

时间:2014-04-28 09:38:13

标签: javascript validation

我有这个javascript验证脚本,检查字段是否包含内容,我有一个验证脚本,检查两个电子邮件字段是否具有相同的输入,但我想将两者合并为一个脚本,所以我只需要推送一个带有错误消息的div

第一部分(检查该字段是否有任何输入的人)

function isValid(fldId,len) {
var fld = $("#"+fldId);
var val = fld.val();
window.console && console.log(fld,fldId)
if (val == "" || (len && val.length<len)) {
  fld.css("borderColor","red");
  return false;
}      
fld.css("borderColor","black");
return true;
}

$(function() {
$("form").on("submit",function() {
var errormessage = [];

if (!isValid('name')) {
  errormessage.push("error name");
}
if (!isValid('email')) {
  errormessage.push("error email");
}
if (!isValid('emailnogmaals')) {
  errormessage.push("error email again");
}  
if (errormessage.length>0) {
  window.console && console.log("error present");
  $(".error-messages").html(errormessage.join('<br/>')).fadeIn();
  return false;
}
window.console && console.log("success");
return true;
});
});

第二部分(检查两个字段是否具有相同输入的人)

function checkEmail(theForm) {
if (theForm.email.value != theForm.emailnogmaals.value)
{
    $(".error-message-email").text("• De e-mail adressen komen niet overeen").fadeIn();
    return false;
} else {
    return true;
}
}

是否可以将两者合并?

2 个答案:

答案 0 :(得分:3)

编写javascript表单验证似乎总是很乏味,对我来说总是有daja vu的感觉,我的意思是这是javascript真正用过的第一件事,所以我总觉得我正在重新发明轮。当你从头开始编写它时,似乎需要几次迭代才能使它恰到好处。

关于方向盘(即它的发明),我觉得它是用jQuery验证插件(link here)定义的。这是一个非常成熟的插件(已经存在了大约8年左右)并且工作得非常好。 验证包括但不限于: 必需,最小,最大,范围,电子邮件,数字,日期,信用卡和等于(比较字段)。您还可以添加自己的验证规则。

你必须花一点时间来了解它(例如它是如何做的,特别是它使用的属性和它给出验证错误的类名),但是一旦你这样做,你可以轻松地再次使用它再次,如果您愿意,每次使用时都要更改样式

答案 1 :(得分:0)

您应该在“email”和“emailnogmaals”字段中输入ID 让我们说我们给他们ID的电子邮件和emailnogmaals:

    function isValid(fldId,len) {
    var fld = $("#"+fldId);
    var val = fld.val();
    window.console && console.log(fld,fldId)
    if (val == "" || (len && val.length<len)) {
      fld.css("borderColor","red");
      return false;
    }      
    fld.css("borderColor","black");
    return true;
    }

    $(function() {
    $("form").on("submit",function() {
    var errormessage = [];

    if (!isValid('name')) {
      errormessage.push("error name");
    }
    if (!isValid('email')) {
      errormessage.push("error email");
    }
    if (!isValid('emailnogmaals')) {
      errormessage.push("error email again");
    }

//-------------------------Check for equal mail
    if ($('#email').Text() != $('#emailnogmaals').Text())
    {
       errormessage.push("emails are not equal");
    }
//-------------------------Check for equal mail

    if (errormessage.length>0) {
      window.console && console.log("error present");
      $(".error-messages").html(errormessage.join('<br/>')).fadeIn();
      return false;
    }
    window.console && console.log("success");
    return true;
    });
    });