針對填寫者在表單頁面填寫身分證欄位後,立即驗證該欄位數值是否合理!
填寫頁面(簡易):
身分證字號:<input name="IDNumber" type="text" value="" />
驗證程式碼:
<script>
function checkID(id) {
tab = "ABCDEFGHJKLMNPQRSTUVXYWZIO";
A1 = new Array (1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3 );
A2 = new Array (0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5 );
Mx = new Array (9,8,7,6,5,4,3,2,1,1);
if ( id.length != 10 ) return false;
i = tab.indexOf( id.charAt(0) );
if ( i == -1 ) return false;
sum = A1[i] + A2[i]*9;
for ( i=1; i<10; i++ ) {
v = parseInt( id.charAt(i) );
if ( isNaN(v) ) return false;
sum = sum + v * Mx[i];
}
if ( sum % 10 != 0 ) return false;
return true;
}
var input = document.getElementsByName("IDNumber");
input[0].onblur = function(){
if(this.value.length ==10){
var chval=checkID(this.value.toUpperCase());
if(chval==false){
alert("請再確認身分證字號!");
this.value="";
}
}else if(this.value.length <9 || this.value.length >10){
alert("請再確認身分證字號!");
this.value="";
}
}
</script>
參考資料:
javascript 身份證字號驗證,by設計自己也設計別人
沒有留言:
張貼留言