PDA

View Full Version : سوال: چگونگي تعيين صحت داده ها توسط جاوا اسكريپت



Ali_Sedaghat
دوشنبه 06 اردیبهشت 1389, 19:27 عصر
با سلام خدمت كاربران محترم

فرض كنيد كه فرم ثبت ما داراي سه فيلد نام كاربري و رمز عبور و ايميل مي باشد. كاربر با پر كردن يك سري اطلاعات در فيلدهاي مربوطه دكمه ثبت نام را كليك مي كند.

ما مي خواهيم قبل از اين كه اين داده ها به اسكريپت اصلي ارسال شود مورد بررسي قرار گيرد و از عدم وجود كاراكترهاي خاص كه مشكل ساز است اطمينان حاصل كنيم.

در اصل مي خواهيم فيلدهاي مربوطه از يك الگوي خاص پيروي كنند.

در php مي توان با استفاده از كد زير اين كار را انجام داد. ( به عنوان مثال : چك كردن معتبر بودن ايميل )


function Valid_Email($Address)
{
// check an email address is possibly valid
if (ereg('^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$', $Address))
return true;
else
return false;
}

حالا مي خوام اين عمل را با جاوا اسكريپت انجام بدهم . منتها نمي دانم در جاوا اسكريپت از چه كدي بايد استفاده كرد؟
اگر كسي جواب اين سؤال را مي داند برايم در صورت امكان پاسخ دهد.
با تقديم احترام
صداقت

trade_mark
دوشنبه 06 اردیبهشت 1389, 20:05 عصر
کد جاوا اسکریپ به این صورته

function echeck(str) {

var at="@"
var dot="."
var lat=str.indexOf(at)
var lstr=str.length
var ldot=str.indexOf(dot)
if (str.indexOf(at)==-1){
alert("Invalid E-mail ID")
return false
}

if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
alert("Invalid E-mail ID")
return false
}

if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
alert("Invalid E-mail ID")
return false
}

if (str.indexOf(at,(lat+1))!=-1){
alert("Invalid E-mail ID")
return false
}

if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
alert("Invalid E-mail ID")
return false
}

if (str.indexOf(dot,(lat+2))==-1){
alert("Invalid E-mail ID")
return false
}

if (str.indexOf(" ")!=-1){
alert("Invalid E-mail ID")
return false
}

return true
}

function ValidateForm(){
var emailID=document.frmSample.txtEmail

if ((emailID.value==null)||(emailID.value=="")){
alert("Please Enter your Email ID")
emailID.focus()
return false
}
if (echeck(emailID.value)==false){
emailID.value=""
emailID.focus()
return false
}
return true
}
برای مثال یه فرم html به صورت زیر بساز

<form name="frmSample" method="post" action="#" onSubmit="return ValidateForm()">
<p>Enter an Email Address :
<input type="text" name="txtEmail">
</p>
<p>
<input type="submit" name="Submit" value="Submit">
</p>
</form>
منبع:http://www.smartwebby.com/dhtml/email_validation.asp

trade_mark
دوشنبه 06 اردیبهشت 1389, 20:10 عصر
از کد زیر هم می تونی استفاده کنی

function validate(form_id,email) {
var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
var address = document.forms[form_id].elements[email].value;
if(reg.test(address) == false) {
alert('Invalid Email Address');
return false;
}
}
فرم html:

<form id="form_id" method="post" action="action.php" onsubmit="javascript:return validate('form_id','email');">
<input type="text" id="email" name="email" />
<input type="submit" value="Submit" />
</form>
یه سرچ کوچیک تو گوگل می زدی بد نبود:قلب:

Ali_Sedaghat
دوشنبه 06 اردیبهشت 1389, 22:00 عصر
جناب trade_mark
از شما بابت جوابتون ممنونم.
توي گوگل سرچ كردم . چندتا آدرس پيدا كردم كه در زمينه جاوا اسكريپت آموزش مي دهند.

آدرس هاشون به اين صورته :

http://www.w3schools.com/js/default.asp

http://javascript.internet.com/forms

Ali_Sedaghat
دوشنبه 06 اردیبهشت 1389, 22:30 عصر
سلام دوست عزيز

منظورتون رو از اين خط متوجه نمي شم.


if(reg.test(address) == false)

منظورتون از عبارت test(address) چيه؟ يعني بايد تابعي به نام test ايجاد كرد كه آرگومان address را به آن انتقال داد؟

sedamorde
دوشنبه 06 اردیبهشت 1389, 22:48 عصر
دوست عزیز از jQuery قافل نشو!
به این نگاه کن فکر میکنم خوب باشه : http://jquery.bassistance.de/validate/demo (http://jquery.bassistance.de/validate/demo/)

اما فراموش هم نکن که شاید در یک مرورگر java فعال نباشه! مثلا با web developer در mozilla میشه جاوا را غیر فعال کرد. اون موقع دیگه اسکریپت های جاوا کار نمیکنه!