PDA

View Full Version : بررسی صحت کدملی



veronika
یک شنبه 14 شهریور 1389, 13:21 عصر
سلام دوستان
من یه فرم دارم که میخوام وقتی در textbox کدملی را وارد میکنم صحت آن را چک کنه.تابع جاوااسکریپت برای این کاررادارم مشکلم اینه که وقتی اون را فراخوانی میکنم کار نمیکنه.
ممنون میشم راهنمایی کنید.


<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="hotel.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<script language="JavaScript" type="text/javascript">


function checkMelliCode(varmellicode)
{
var meli_code;
meli_code=varmellicode.value;
if (meli_code.length == 10)
{
if(meli_code=="1111111111" ||
meli_code=="0000000000" ||
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(”کد ملی صحیح نمی باشد”);
objcode.focus();
return false;
}
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))
{
return true;
}
else
{
alert(”کد ملی صحیح نمی باشد”);
objcode.focus();
return true;
}
}
else
{
return true;
}


</script>



<form id="form1" runat="server">
<div>

<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</div>
</form>
<p>
<input id="Submit1" type="submit" value="submit" onclick="checkMelliCode(TextBox1)" /></p>
</body>
</html>

Ali_M.Eghbaldar
یک شنبه 14 شهریور 1389, 13:38 عصر
سلام
چطوری فراخوانیش می کنی ؟

ASPX
یک شنبه 14 شهریور 1389, 13:54 عصر
قسمت دكمه رو به صورت زير تغيير بده :


<input id="Submit1" type="submit" value="submit" onclick="checkMelliCode(document.getElementById('<% TextBox1.TextBox1.ClientID %>'))" />

--------------------
درستش اينه يه تكست باكس اضافه نوشتم !


<input id="Submit1" type="submit" value="submit" onclick="checkMelliCode(document.getElementById('<% TextBox1.ClientID %>'))" />

veronika
یک شنبه 14 شهریور 1389, 14:24 عصر
کد شما را امتحان کردم ولی error میداد.
یه button دارم که روی onclick ان فراخوانی میکنم.
توی کدی که فرستادم هست.


Line 248: #line default Line
249: #line hidden
Line 250: @__w.Write("\'))\" /></div>\r\n "); Line 251: } Line 252:

ASPX
یک شنبه 14 شهریور 1389, 15:36 عصر
مشكل از اسكريپت شماست !
--------------------
كدي كه ارسال كرديد يك { كم دارد به خط آخر اضافه كنيد

ASPX
یک شنبه 14 شهریور 1389, 16:00 عصر
كد درست :
اين را امتحان كنيد !


<script language=javascript type="text/javascript">
function cMC(vmc)
{//
var mc;
mc = vmc.value;
if (mc.length == 10)
{//
if (mc == '1111111111' || mc == '0000000000' || mc == '2222222222' || mc == '3333333333' || mc == '4444444444' || mc == '5555555555' || mc == '6666666666' || mc == '7777777777' || mc == '8888888888' || mc == '9999999999')
{//
alert('کد ملی صحیح نمی باشد');
vmc.focus();
return false;
}//
c = parseInt(mc.charAt(9));
n = parseInt(mc.charAt(0)) * 10 +parseInt(mc.charAt(1)) * 9 +parseInt(mc.charAt(2)) * 8 +parseInt(mc.charAt(3)) * 7 +parseInt(mc.charAt(4)) * 6 + parseInt(mc.charAt(5)) * 5 +parseInt(mc.charAt(6)) * 4 +parseInt(mc.charAt(7)) * 3 + parseInt(mc.charAt(8)) * 2;
r = n - parseInt(n / 11) * 11;
if ((r == 0 && r == c) || (r == 1 && c == 1) || (r > 1 && c == 11 - r))
{//
return true;
}//
else
{//
alert('کد ملی صحیح نمی باشد');
vmc.focus();
return false;
}//
}//
else {//
alert('ده رقم كد ملی را وارد نمایید');
vmc.focus();
return false;
}//
}//

</script>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<input id="Submit1" type="submit" value="submit" onclick="return cMC(document.getElementById('<%= TextBox1.ClientID %>'));" />

veronika
یک شنبه 14 شهریور 1389, 20:07 عصر
اگر کنترل ما از نوع سرور باشه چه طوری باید فراخوانی کنم؟یه buuton که روش کلیک میکنیم اسکریپت اجرا بشه.
ممنون.

veronika
دوشنبه 15 شهریور 1389, 22:58 عصر
متوجه شدم بايد در رويداد onclientclick بنويسيم.

persian_bigboy
یک شنبه 28 شهریور 1389, 16:49 عصر
سلام دوستان پا برهنه پریدم وسط . من این الگریتم رو به یک کنترل validation تغییر دادم و به راحتی داره کار میکنه . میتونید اصلش رو از ینجا دانلود کنید . راستی نظر یادتون نره .
http://barnamenevis.org/forum/showthread.php?t=247714

راستی این کد جاوا اسکریپت داخل سایت REFAHI.IR که پایگاه مشهوری هم هست وجود دارد .