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