ورود

View Full Version : سوال: چگونه مي توان ورودي هاي كاربر را چك كرد؟



Ali_Sedaghat
دوشنبه 20 آذر 1391, 08:15 صبح
با سلام خدمت تمام اساتيد محترم
من يه فرمي دارم كه حاوي فيلدهاي نام و ايميل و تلفن همراه هست. قصد دارم كه اين اطلاعات را در بانك اطلاعاتي ذخيره كنم.
متأسفانه با جاوا اسكريپت آشنايي كافي ندارم و دست و پا شكسته يه چيزايي بلدم.
به عنوان مثال از يه تابع براي چك كردن اين فيلدها استفاده كردم مبني بر اين كه اين فيلدها خالي هستند يا نه. چنان چه خالي بودن به كاربر پيغام خطا بده و ازش درخواست مي كنه كه فيلدها را پر كنه.
اما مشكل اصلي من از اين جا به بعد هست كه در زير توضيح ميدم:

سؤال اول:
فرض كنيد كه كاربر در قسمت نام از كاراكترهايي نظير ( ' " و ... ) استفاده كرده كه ذخيره ي اين كاراكترها در بانك اطلاعاتي مشكلاتي را به وجود مياره. حالا مي خوام قبل از اين كه محتواي اين فيلد به پايگاه داده ارسال بشه با يك تابع جاوا اسكريپت كنترل بشه و در صورت صحت اطلاعات اين داده ها ارسال بشن.
يا به عبارت بهتر ميشه از الگويي استفاده كرد كه فقط كاراكترهاي الفبايي و اعداد را قبول كنه؟

سؤال دوم:
در فيلد مربوط به شماره تلفن همراه هم مي خواستم از يه الگو ( مثل: *******-*09 ) استفاده كنم. چنان چه كاربر از اين الگو پيروي نكرد بهش پيغام خطا بده.

ممنون ميشم اگه كسي بتونه كدهاش رو در اختيارم قرار بده.
با تقديم احترام
صداقت

كدها يا اطلاعات مورد نياز در فرم:


<script type="text/javascript" language="javascript">
function Validate() {
var _txtEmail = document.getElementById("txtEmail");
var _txtMobile = document.getElementById("txtMobile");
var atpos=_txtEmail.value.indexOf("@");
var dotpos=_txtEmail.value.lastIndexOf(".");

if (_txtPaymenter.value == "") {
alert("کاربر گرامی، نام خود را وارد نمایید.");
_txtPaymenter.focus();
return false;
}
else if (_txtEmail.value == "") {
alert("کاربر گرامی، ایمیل خود را وارد نمایید.");
_txtEmail.focus();
return false;
}
else if (_txtEmail.value != "" && (atpos<1 || dotpos<atpos+2 || dotpos+2 >= _txtEmail.value.length)) {
alert("کاربر گرامی، ایمیل واردشده صحیح نمی‌باشد.");
_txtEmail.focus();
return false;
}
else if (_txtMobile.value == "") {
alert("کاربر گرامی، تلفن همراه خود را وارد نمایید.");
_txtMobile.focus();
return false;
}
}
</script>

Ali_Sedaghat
دوشنبه 20 آذر 1391, 23:10 عصر
كسي نبود جواب سؤال منو بده.
برام خيلي مهم و واجبه.
ممنون ميشم اگه يه نفر راهنمايي كنه.
با تشكر
صداقت

hossin.esm
سه شنبه 21 آذر 1391, 11:12 صبح
سلام
من یک نمونه برات گذاشتم اما به نظر من بهتر بود این چک کردن ها با آژاکس و طرف سرور انجام می شد و قبل از ذخیره در بانک چون ممکن هست نام کاربری در بانک وجود داشته باشه.
به هر حال



<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript">
function validateForm(){

var nameRegex = /^[a-zA-Z0-9\-]+$/;
var validUsername = document.frm.username.value.match(nameRegex);
if(validUsername == null){
alert("Your username is not valid. Only characters A-Z, a-z and '-' are acceptable.");
document.frm.username.focus();
return false;
}
var mobileRegex = /^09([0-9]){9,9}$/;
var validmobile = document.frm.mobile.value.match(mobileRegex);
if(validmobile == null){
alert("Your Mobile Number is not valid. Only characters 09******** are acceptable.");
document.frm.mobile.focus();
return false;
}
return true;

}

</script>
</head>
<body>
<form name="frm" onSubmit="return validateForm()">
username <input name="username" type="text" /><br />
mobile <input name="mobile" type="text" /><br />
<input name="send" value="send" type="Submit" />
</form>
</body>
</html>