正在尝试验证用户ID

Trying to validate USER ID

本文关键字:用户 ID 验证      更新时间:2024-03-24

我正在尝试验证表单的USER ID。具体条件测试如下:

规则#1所有10个位置都必须存在

规则#2位置5必须是连字符(-)

规则#3位置1到4必须是数字

规则#4位置6到10必须是数字只有当规则1到规则4通过验证时,才应检查以下两个规则(#5和#6)

规则#5连字符(-)左边的数字之和必须大于零,连字符(-1)右边的数字之总和必须大于零

规则#6连字符(-)右边的数字之和必须是(双加2)连字符(-1)左边的数字之总和

您必须为不同的错误条件提供不同的消息

当我尝试执行此验证时,表单会在应该显示正确错误消息的时候自行提交,我不确定原因。

JavaScript函数:

function validateUserId() {
   var value = document.getElementById("userId").value;
   if (value.length != 10) {
   errMessages += "User ID all 10 positions must be present";
 return errMessages;
  }
  if (value[4] != "-") {
errMessages +="User ID Position 5 must be a hyphen (-)" ;
return errMessages;
 }
  for (var i = 0; i < 4; i++) {
  if (isNaN(value[i]))  {
  errMessages += "User ID Position " + i + " must be a number" ;
  return errMessages;
  }
 }
 for (i = 5; i < 10; i++) {
  if (isNaN(value[i]))  {
  errMessages += "User ID Position " + i + " must be a number" ;
  }
 }
var lowsum = 0;
for (i = 0; i < 4; i++) {
lowsum += parseInt(value[i]);
}
 if (lowsum <= 0) {
errMessages += "User ID Sum of the first 4 numbers must be greater than 0" ;
 return errMessages;
 }
 var highsum = 0;
 for (i = 5; i < 10; i++) {
 highsum += parseInt(value[i]);
  }
  if (highsum <= 0) {
  errMessages += "User ID Sum of the last 5 numbers must be greater than 0"  ;
return errMessages;
 }
  if (highsum != (lowsum * 2) + 2) {
 errMessages += "User ID sum of the last 5 numbers must be the double plus of of the first 4 numbers" ;
return errMessages;
 }
return errMessages;
}

HTML:

<label class="label">Client ID </label>    
        <input type="text" name="userId" id="userId" size="10" maxlength="10" >

这看起来非常好。但您只需要returnfalse。以这种方式更改代码:

function validateUserId() {
  var value = document.getElementById("userId").value;
  if (value.length != 10) {
    errMessages += "User ID all 10 positions must be present";
    alert(errMessages);
    return false;
  }
  if (value[4] != "-") {
    errMessages +="User ID Position 5 must be a hyphen (-)" ;
    alert(errMessages);
    return false;
  }
  for (var i = 0; i < 4; i++) {
    if (isNaN(value[i]))  {
      errMessages += "User ID Position " + i + " must be a number" ;
      alert(errMessages);
      return false;
    }
  }
  for (i = 5; i < 10; i++) {
    if (isNaN(value[i]))  {
      errMessages += "User ID Position " + i + " must be a number" ;
    }
  }
  var lowsum = 0;
  for (i = 0; i < 4; i++) {
    lowsum += parseInt(value[i]);
  }
  if (lowsum <= 0) {
    errMessages += "User ID Sum of the first 4 numbers must be greater than 0" ;
    alert(errMessages);
    return false;
  }
  var highsum = 0;
  for (i = 5; i < 10; i++) {
    highsum += parseInt(value[i]);
  }
  if (highsum <= 0) {
    errMessages += "User ID Sum of the last 5 numbers must be greater than 0"  ;
    alert(errMessages);
    return false;
  }
  if (highsum != (lowsum * 2) + 2) {
    errMessages += "User ID sum of the last 5 numbers must be the double plus of of the first 4 numbers" ;
    alert(errMessages);
    return false;
  }
  alert(errMessages);
}
<form onsubmit="return validateUserId()">
  <input id="userId" />
  <input type="submit" />
</form>