Javascript验证,与表单链接在一起

Javascript validation, link together with the form?

本文关键字:链接 在一起 表单 验证 Javascript      更新时间:2023-09-26

我需要帮助才能完成这项工作。我已经完成了一个验证字段"Personalnumber"的脚本。但我不知道如何连接togheter并使其工作。

有人能帮忙吗?

//如果表单看起来很奇怪,我已经删除了所有其他字段,只是为了得到一个更短的代码。

<script>

    function validatePNum(sPNum)
    {
      var numbers = sPNum.match(/^('d)('d)('d)('d)('d)('d)('d)('d)('d)('d)('d)('d)$/);
      var checkSum = 0;
      var d = new Date();
      if (!isDate(sPNum.substring(0,4),sPNum.substring(4,6),sPNum.substring(6,8))) {
        alert("Datumet " + sPNum.substring(0,8) + " är inte korrekt.");
        return false;
      }
      if (numbers == null) { return false; }
      var n;
      for (var i = 3; i <= 12; i++)
      {
        n=parseInt(numbers[i]);
        if (i % 2 == 0) {
          checkSum+=n;
        } else {
          checkSum+=(n*2)%9+Math.floor(n/9)*9
        }
      }
      if (checkSum%10==0) { return true;}
      return false;
    }
    function getYear(y) { return (y < 1000) ? y + 1900 : y; }
    function isDate(year, month, day)
    {
      month = month - 1; // 0-11 in JavaScript
      var tmpDate = new Date(year,month,day);
      if ( (getYear(tmpDate.getYear()) == year) &&
      (month == tmpDate.getMonth()) &&
      (day == tmpDate.getDate()) )
        return true;
      else
        return false;
    }
    </script>
    <form method="post" name="post" action="index.php?site=register">
      <tr>
        <td class="border_1" align="left">Personnummer:</td>
        <td class="border_1"><input id="personalnumber" type="text" name="personalnumber" value="$personalnumber"  size="30"/><small> YYYYMMDDXXXX</small></td>
      </tr>
        <div align="center"><input name="save" type="submit" value="Registera" /></div>
    </form>

首先,将表单中的name更改为类似name="myForm"的内容。然后,您可以通过获取字段的值(即var x = document.forms["myForm"].value;)将JS代码与表单链接起来。尚未测试,但这是一种将js代码与html中的表单链接起来的方法。

您可以使用jQuery

只需添加到您的表单id(如我的示例中的form_id)。

$('#form_id').submit(function(){ validatePNum(sPNum) //do more things });