Javascript验证,与表单链接?

时间:2014-11-02 11:33:39

标签: javascript html5 validation

我需要帮助才能实现这一目标。我做了一个验证字段“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>

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

你可以使用jQuery

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

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