یک کد در پیدا کردم که با اون میشه کد ملی رو چک کرد اما مشکلم اینه که میخوام به کد دیگه ای ادقامش کنم اما نمیدونم چطوری ؟
کد چک کردن کد ملی:
<script type="text/javascript">
function checkCodeMeli(code)
{
var L=code.length;
if(L<8 || parseInt(code,10)==0)
return false;
code=('0000'+code).substr(L+4-10);
if(parseInt(code.substr(3,6),10)==0)
return false;
var c=parseInt(code.substr(9,1),10), s=0;
for(var i=0;i<9;i++)
s+=parseInt(code.substr(i,1),10)*(10-i);
s=s%11;
return (s<2 && c==s) || (s>=2 && c==(11-s));
}
</script>
<script type="text/javascript">
function checkMelliCode(meli_code)
{
if (meli_code.length == 10)
{
if(meli_code=='1111111111' || meli_code=='2222222222' || meli_code=='3333333333' || meli_code=='4444444444' || meli_code=='5555555555' || meli_code=='6666666666' || meli_code=='7777777777' || meli_code=='8888888888' || meli_code=='9999999999' )
{
alert(11);
}else{
c = parseInt(meli_code.charAt(9));
n = parseInt(meli_code.charAt(0))*10 + parseInt(meli_code.charAt(1))*9 + parseInt(meli_code.charAt(2))*8 + parseInt(meli_code.charAt(3))*7 + parseInt(meli_code.charAt(4))*6 + parseInt(meli_code.charAt(5))*5 + parseInt(meli_code.charAt(6))*4 + parseInt(meli_code.charAt(7))*3 + parseInt(meli_code.charAt(8))*2;
r = n - parseInt(n/11)*11;
if ((r == 0 && r == c) || (r == 1 && c == 1) || (r > 1 && c == 11 - r))
{
alert('کد ملی صحیح می باشد');
}
else
{
alert('کد ملی وارد شده معتبر نمی باشد');
}
}
}
}
</script>
</head>
<body>
<font color="red" style="cursor:pointer;" onclick="checkMelliCode('1234567891');">show</font>
</body>
</html>
کد خودم رو به صورت زیر نوشتم اما 2 تا مشکل وجود داره
1- اگر عدد های وارد شده در تکسباکس کمتر از 10 رقم باشده کد اجرا نمیشه
2- وقتی که کد 10 رقمی وارد میشه و معتبر نیست پیغام خطا به نمایش در می آید اما عملیات متوقف نمیشه و اطلاعات به دیتابیس ارسال میشه
function validateForm(){
var field = document.forms["form1"]["textfield1"].value;
if (document.getElementById('textfield1').value == ''){
document.getElementById('name-error').innerHTML = 'نام و نام خانوادگی مالک کالا را وارد نمایید';
return false;
}
else{
document.getElementById('name-error').innerHTML = '';
}
if(document.getElementById('textfield2').value == ''){
document.getElementById('melli-error').innerHTML = 'کد ملی مالک کالا را وارد نمایید!';
return false;
}
else{
document.getElementById('melli-error').innerHTML = '';
}
if(document.getElementById('textfield4').value == ''){
document.getElementById('tel-error').innerHTML = 'لطفا تلفن ثابت را وارد نمایید';
return false;
}
else{
document.getElementById('tel-error').innerHTML = '';
}
if(document.getElementById('textfield5').value == ''){
document.getElementById('mobil-error').innerHTML = 'لطفا تلفن همراه را وارد نمایید';
return false;
}
else{
document.getElementById('mobil-error').innerHTML = '';
}
if(document.getElementById('textfield6').value == ''){
document.getElementById('post-error').innerHTML = 'لطفا کد پستی را وارد نمایید';
return false;
}
else{
document.getElementById('post-error').innerHTML = '';
}
if(document.getElementById('textfield7').value == ''){
document.getElementById('address-error').innerHTML = 'لطفا آدرس مالک کالا را وارد نمایید';
return false;
}
else{
document.getElementById('address-error').innerHTML = '';
}
email=document.form1.textfield3.value;
var atpos=email.indexOf("@");
var dotpos=email.lastIndexOf(".");
if(email!="")
{
if(atpos<1||dotpos<atpos+2||dotpos +2>=x.length)
{
document.getElementById('mail-error').innerHTML ="لطفا ايميل آدرس را صحيح وارد كنيد";
return false;
}
}
else{
document.getElementById('mail-error').innerHTML = '';
}
meli_code=document.form1.textfield2.value;
if (meli_code.length == 10)
{
if(meli_code=='1111111111' || meli_code=='2222222222' || meli_code=='3333333333' || meli_code=='4444444444' || meli_code=='5555555555' || meli_code=='6666666666' || meli_code=='7777777777' || meli_code=='8888888888' || meli_code=='9999999999' )
{
alert(11);
}else{
c = parseInt(meli_code.charAt(9));
n = parseInt(meli_code.charAt(0))*10 + parseInt(meli_code.charAt(1))*9 + parseInt(meli_code.charAt(2))*8 + parseInt(meli_code.charAt(3))*7 + parseInt(meli_code.charAt(4))*6 + parseInt(meli_code.charAt(5))*5 + parseInt(meli_code.charAt(6))*4 + parseInt(meli_code.charAt(7))*3 + parseInt(meli_code.charAt(8))*2;
r = n - parseInt(n/11)*11;
if ((r == 0 && r == c) || (r == 1 && c == 1) || (r > 1 && c == 11 - r))
{
document.getElementById('melli-error').innerHTML ="";
}
else
{
document.getElementById('melli-error').innerHTML ="کد ملی وارد شده معتبر نمی باشد";
}
}
}
}