PDA

View Full Version : سوال: اشکال در کدvalidate_form



programerp
دوشنبه 26 تیر 1391, 10:32 صبح
سلام
کد جاوااسکریپت و php من در ظاهر درست هستند ولی اصلا وارد صفحه جاوااسکریپت واسه چک کردن فیلدها وارد نمیشه چیکار باید بکنم ؟
کدهای صفحه php

<form method="post" name="form" onsubmit="return formValidator()" class="font_form" enctype="multipart/form-data" >
<table class="tbl_reg">
<tr>
<td colspan="4" style="text-align:center;height:20px;padding:0;color:#FF0;">
لطفا فرم را کامل پر کنیدتمام مشخصات داخل فرم الزامی می باشد
</td>
</tr>
<tr>
<td class="td_class_txt" >نام :</td>
<td class="td_class_box"><input type="text" name="fname" size="20" /></td>
<td class="td_class_txt">نام خانوادگی :</td>
<td class="td_class_box"> <input type="text" name="lname" size="20"/></td>

</tr>

<tr>
<td class="td_class_txt" >تاریخ تولد(روز/ماه/سال):</td>
<td class="td_class_box"><input type="text" name="brithday" size="20"/></td>
<td class="td_class_txt">کدملی :</td>
<td class="td_class_box"> <input type="text" name="melicode" size="20"/></td>
</tr>

<tr>
<td class="td_class_txt" >وضعیت تاهل:</td>
<td class="td_class_box"><input type="radio" name="marry" />متاهل
<input type="radio" name="singel" />مجرد
</td>
<td class="td_class_txt">تحصیلات :</td>
<td class="td_class_box"><input type="text" name="tahsilat" size="20"/></td>
</tr>

<tr>
<td class="td_class_txt" >شغل :</td>
<td class="td_class_box"><input type="text" name="job" size="20"/></td>
<td class="td_class_txt" >تلفن منزل:</td>
<td class="td_class_box"> <input type="text" name="hometell" size="20"/></td>
</tr>

<tr>
<td class="td_class_txt" >موبایل :</td>
<td class="td_class_box"><input type="text" name="mobile" size="20"/></td>
<td class="td_class_txt" >پست الکترونیکی :</td>
<td class="td_class_box"> <input type="text" name="mail" size="20"/></td>
</tr>

<tr>
<td class="td_class_txt" >نام کاربری:</td>
<td class="td_class_box"><input type="text" name="username" size="20"/>
<input type="submit" value="جستجو" class="font_form" onClick="javascript:form.action='register.php';"/>
<?
require("db_abna222.php");
$username=$_POST[username];
$sq=mysql_query("SELECT username FROM permissions WHERE username='$username'");
while($row=mysql_fetch_row($sq))
{
echo"<font color='#FF0000'>نام کاربری تکراری است</font>";

}

?>



</td>
<td class="td_class_txt" >پسورد :</td>
<td class="td_class_box"> <input type="password" name="password" size="20"/></td>
</tr>

<tr>
<td class="td_class_txt" >سوال امنیتی :</td>
<td class="td_class_box"><select name="selection" class="font_form">
<option value="1">رنگ مورد علاقه</option>
<option value="2">نام معلم کلاس اول</option>
<option value="3">ورزش مورد علاقه</option>
<option value="4">نام بهترین دوست</option>
<option value="5">بهترین کتابی که خوانده اید</option>
</select>


</td>
<td class="td_class_txt" >پاسخ :</td>
<td class="td_class_box"> <input type="text" name="answer" size="20"/></td>
</tr>

<tr>
<td class="td_class_txt" colspan="4" style="text-align:right;">آپلود عکس معتبر(کارت ملی ،شناسنامه،گواهینامه):
<input type="file" name="filekart" size="20"/>حداکثرحجم عکس 100کیلوبایت

</td>

</tr>

<tr>
<td class="td_class_txt" >حرفه ای که در آن تخصص دارید:</td>
<td class="td_class_box"><input type="text" name="peref" size="20"/></td>
<td class="td_class_txt" >علاقمندیها :</td>
<td class="td_class_box"> <input type="text" name="alaghe" size="20"/></td>
</tr>

<tr>
<td class="td_class_txt" >نام پدر :</td>
<td class="td_class_box"><input type="text" name="faname" size="20"/></td>
<td class="td_class_txt" >شماره موبایل :</td>
<td class="td_class_box"> <input type="text" name="fmob" size="20"/></td>
</tr>

<tr>
<td class="td_class_txt" >شغل پدر :</td>
<td class="td_class_box"><input type="text" name="fjob" size="20"/></td>
<td class="td_class_txt" >شغل مادر :</td>
<td class="td_class_box"> <input type="text" name="mjob" size="20"/></td>
</tr>

<tr>
<td class="td_class_txt" >کد روبرو را وارد کنید :</td>
<td class="td_class_box" >
<img src="image/COD.png" />
<input type="text" name="code" size="12"/>
</td>
<td class="td_class_txt" >آدرس :</td>
<td class="td_class_box"> <input type="text" name="addr" size="40"/></td>
</tr>
<br />
<tr>
<td style="height:30px;text-align:center;" colspan="4">
<!-- <input type="submit" value="ثبت نام" size="20" class="font_form" />
<input type="submit" value="انصراف" size="20" class="font_form" onClick="javascript:form.action='index.php';"/>-->
<input type="submit" value="ثبت نام" size="20" class="font_form" onClick="javascript:form.action='insert_new_user.php';"/>
<input type="submit" value="انصراف" size="20" class="font_form" onClick="javascript:form.action='index.php';"/>
</td>
</tr>

</table>

</form>
کدهای صفحه js

function formValidator(){
// Make quick references to our fields
//alert("inja");
//var firstname = document.forms['form']['fname'].value;
var firstname = document.getElementById('fname');
var lastname = document.getElementById('lname');
var melicode = document.getElementById('melicode');
var mobile = document.getElementById('mobile');
var username = document.getElementById('username');
var password= document.getElementById('password');
var scurityqs = document.getElementById('selection');
var answer = document.getElementById('answer');
var email = document.getElementById('mail');
var addr = document.getElementById('addr');


// Check each input in the order that it appears in the form!
if( notEmpty(firstname, "لطفاً مقدار را وارد فرمایید")&&isAlphabet(firstname, "Please enter only letters for your name")){
if(notEmpty(lastname, "Please enter value")&&isAlphabet(lastname, "Please enter only letters for your lastname")){
if(notEmpty(melicode, "Please enter value")&&isNumeric1(melicode, "Please enter a valid meli code with 10 character")){
if(notEmpty(mobile, "Please enter value")&&isNumeric2(mobile, "Please enter a valid mobile number with 11 character")){
if(notEmpty(addr, "Please enter value")&&isAlphanumeric(addr, "Numbers and Letters Only for Address")){
if(notEmpty(email, "Please enter value")&&emailValidator(email, "Please enter a valid email address")){
if(notEmpty(scurityqs, "Please enter value")&&madeSelection(scurityqs, "Please Choose a securty question")){
if(notEmpty(answer, "Please enter value")&&isAlphanumeric(answer, "Numbers and Letters Only for answer")){
if(notEmpty(username, "Please enter value")&&lengthRestriction(username, 4, 8)){
if( notEmpty(password, "Please enter value")&&lengthRestriction(password, 6, 10)){

return true;
}
}
}
}
}
}
}
}
}

return false;

}

function notEmpty(elem, helperMsg){
if(elem.value.length == 0){
alert(helperMsg);
elem.focus(); // set the focus to this input
return false;
}
return true;
}

/*function isNumeric(elem, helperMsg){
var numericExpression = /^[0-9]+$/;
if(elem.value.match(numericExpression)){
return true;
}else{
alert(helperMsg);
elem.focus();
return false;
}
}*/

function isAlphabet(elem, helperMsg){
var alphaExp = /(^([A-Za-z]|[\u0600-\u06FF]){3,})$/g;
if(elem.value.match(alphaExp)){
return true;
}else{
alert(helperMsg);
elem.focus();
return false;
}
}

function isAlphanumeric(elem, helperMsg){
var alphaExp = /^[0-9a-zA-Z]+$/;
if(elem.value.match(alphaExp)){
return true;
}else{
alert(helperMsg);
elem.focus();
return false;
}
}

function lengthRestriction(elem, min, max){
var uInput = elem.value;
if(uInput.length >= min && uInput.length <= max){
return true;
}else{
alert("Please enter between " +min+ " and " +max+ " characters");
elem.focus();
return false;
}
}

function madeSelection(elem, helperMsg){
if(elem.value == "Please Choose"){
alert(helperMsg);
elem.focus();
return false;
}else{
return true;
}
}

function emailValidator(elem, helperMsg){
var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
if(elem.value.match(emailExp)){
return true;
}else{
alert(helperMsg);
elem.focus();
return false;
}
}
}
function isNumeric1(elem, helperMsg){
var numericExpression = /^[0-9]+$/;
if(elem.value.match(numericExpression) && elem.value.length ==10){
return true;
}else{
alert(helperMsg);
elem.focus();
return false;
}
}
function isNumeric2(elem, helperMsg){
var numericExpression = /^[0-9]+$/;
if(elem.value.match(numericExpression) && elem.value.length ==11){
return true;
}else{
alert(helperMsg);
elem.focus();
return false;
}
}

Variable
سه شنبه 27 تیر 1391, 00:13 صبح
سلام . دوست عزیز. ار این ظاهر این کد که سخت میشه فهمید. اگه میشه از این تگ کد که با علامت # موقع ویرایش یا ارسال پست تو ابزار وجود داره استفاده کن .
ولی من دیدم
شما به عناصر فرم نام دادید. ولی در تابع جاوا اسکریپتتون از تابع بدست اوردن توسط ای دی استفاده کرده یعنی

document.getElementById
که شما برای دسترسی به عناصر بوسیله نامشون باید . از

document.getElementsByName('fname')[0]
استفاده کنید مثلا



var firstname = document.getElementsByName('fname')[0];
console.log(firstname);
var lastname = document.getElementsByName('lname')[0];
var melicode = document.getElementsByName('melicode')[0];
var mobile = document.getElementsByName('mobile')[0];
var username = document.getElementsByName('username')[0];
var password= document.getElementsByName('password')[0];
var scurityqs = document.getElementsByName('selection')[0];
var answer = document.getElementsByName('answer')[0];
var email = document.getElementsByName('mail')[0];
var addr = document.getElementsByName('addr')[0];

programerp
سه شنبه 27 تیر 1391, 09:31 صبح
ممنون از راهنمایی بسیار خوبتون من تغییرات رو انجام دادم ولی فقط وارد نشدن نام رو چک کرد و دیگه هیچی
کدهای فرم php

<form onsubmit="return formValidator()" method="post" name="form" class="font_form" enctype="multipart/form-data" >
<table class="tbl_reg">
<tr>
<td colspan="4" style="text-align:center;height:20px;padding:0;color:#FF0;">
لطفا فرم را کامل پر کنیدتمام مشخصات داخل فرم الزامی می باشد
</td>
</tr>
<tr>
<td class="td_class_txt" >نام :</td>
<td class="td_class_box"><input type="text" name="fname" id="fname" size="20" /></td>
<td class="td_class_txt">نام خانوادگی :</td>
<td class="td_class_box"> <input type="text" name="lname" size="20"/></td>

</tr>

<tr>
<td class="td_class_txt" >تاریخ تولد(روز/ماه/سال):</td>
<td class="td_class_box"><input type="text" name="brithday" id="brithday" size="20"/></td>
<td class="td_class_txt">کدملی :</td>
<td class="td_class_box"> <input type="text" name="melicode" id="melicode" size="20"/></td>
</tr>

<tr>
<td class="td_class_txt" >وضعیت تاهل:</td>
<td class="td_class_box"><input type="radio" name="marry" id="marry" />متاهل
<input type="radio" name="singel" />مجرد
</td>
<td class="td_class_txt">تحصیلات :</td>
<td class="td_class_box"><input type="text" name="tahsilat" id="tahsilat" size="20"/></td>
</tr>

<tr>
<td class="td_class_txt" >شغل :</td>
<td class="td_class_box"><input type="text" name="job" id="job" size="20"/></td>
<td class="td_class_txt" >تلفن منزل:</td>
<td class="td_class_box"> <input type="text" name="hometell" id="hometell" size="20"/></td>
</tr>

<tr>
<td class="td_class_txt" >موبایل :</td>
<td class="td_class_box"><input type="text" name="mobile" id="mobile" size="20"/></td>
<td class="td_class_txt" >پست الکترونیکی :</td>
<td class="td_class_box"> <input type="text" name="mail" id="mail" size="20"/></td>
</tr>

<tr>
<td class="td_class_txt" >نام کاربری:</td>
<td class="td_class_box"><input type="text" name="username" id="username" size="20"/>
<input type="submit" value="جستجو" class="font_form" onClick="javascript:form.action='register.php';"/>
<?
require("db_abna222.php");
$username=$_POST[username];
$sq=mysql_query("SELECT username FROM permissions WHERE username='$username'");
while($row=mysql_fetch_row($sq))
{
echo"<font color='#FF0000'>نام کاربری تکراری است</font>";

}

?>



</td>
<td class="td_class_txt" >پسورد :</td>
<td class="td_class_box"> <input type="password" name="password" id="password" size="20"/></td>
</tr>

<tr>
<td class="td_class_txt" >سوال امنیتی :</td>
<td class="td_class_box"><select name="selection" id="selection" class="font_form">
<option value="1">رنگ مورد علاقه</option>
<option value="2">نام معلم کلاس اول</option>
<option value="3">ورزش مورد علاقه</option>
<option value="4">نام بهترین دوست</option>
<option value="5">بهترین کتابی که خوانده اید</option>
</select>


</td>
<td class="td_class_txt" >پاسخ :</td>
<td class="td_class_box"> <input type="text" name="answer" id="answer" size="20"/></td>
</tr>

<tr>
<td class="td_class_txt" colspan="4" style="text-align:right;">آپلود عکس معتبر(کارت ملی ،شناسنامه،گواهینامه):
<input type="file" name="filekart" id="filekart" size="20"/>حداکثرحجم عکس 100کیلوبایت

</td>

</tr>

<tr>
<td class="td_class_txt" >حرفه ای که در آن تخصص دارید:</td>
<td class="td_class_box"><input type="text" name="peref" id="peref" size="20"/></td>
<td class="td_class_txt" >علاقمندیها :</td>
<td class="td_class_box"> <input type="text" name="alaghe" id="alaghe" size="20"/></td>
</tr>

<tr>
<td class="td_class_txt" >نام پدر :</td>
<td class="td_class_box"><input type="text" name="faname" id="faname" size="20"/></td>
<td class="td_class_txt" >شماره موبایل :</td>
<td class="td_class_box"> <input type="text" name="fmob" id="fmob" size="20"/></td>
</tr>

<tr>
<td class="td_class_txt" >شغل پدر :</td>
<td class="td_class_box"><input type="text" name="fjob" id="fjob" size="20"/></td>
<td class="td_class_txt" >شغل مادر :</td>
<td class="td_class_box"> <input type="text" name="mjob" id="mjob" size="20"/></td>
</tr>

<tr>
<td class="td_class_txt" >کد روبرو را وارد کنید :</td>
<td class="td_class_box" >
<img src="image/COD.png" />
<input type="text" name="code" id="code" size="12"/>
</td>
<td class="td_class_txt" >آدرس :</td>
<td class="td_class_box"> <input type="text" name="addr" id="addr" size="40"/></td>
</tr>
<br />
<tr>
<td style="height:30px;text-align:center;" colspan="4">
<!-- <input type="submit" value="ثبت نام" size="20" class="font_form" />
<input type="submit" value="انصراف" size="20" class="font_form" onClick="javascript:form.action='index.php';"/>-->
<input type="submit" value="ثبت نام" size="20" class="font_form" onClick="javascript:form.action='insert_new_user.php';"/>
<input type="submit" value="انصراف" size="20" class="font_form" onClick="javascript:form.action='index.php';"/>
</td>
</tr>

</table>

</form>


کدهای js

// JavaScript Document
function formValidator(){
// Make quick references to our fields
//alert("inja");
//var firstname = document.forms['form']['fname'].value;
var firstname = document.getElementById('fname');
var lastname = document.getElementById('lname');
var melicode = document.getElementById('melicode');
var mobile = document.getElementById('mobile');
var username = document.getElementById('username');
var password= document.getElementById('password');
var scurityqs = document.getElementById('selection');
var answer = document.getElementById('answer');
var email = document.getElementById('mail');
var addr = document.getElementById('addr');


// Check each input in the order that it appears in the form!
if( notEmpty(firstname, "لطفاً نام را وارد نمایید")|isAlphabet(firstname, "فقط از حروف الفبا استفاده نمایید")){
if(notEmpty(lastname, "لطفاً نام خانوادگی را وارد نمایید")| isAlphabet(lastname, "Please enter only letters for your lastname")){
if(notEmpty(melicode, "لطفاً کد ملی را وارد نمایید")| isNumeric1(melicode, "Please enter a valid meli code with 10 character")){
if(notEmpty(mobile, "لطفاً شماره همراه را وارد نمایید")| isNumeric2(mobile, "Please enter a valid mobile number with 11 character")){
if(notEmpty(email, "لطفاً ایمیل را وارد نمایید")| emailValidator(email, "Please enter a valid email address")){
if(notEmpty(username, "لطفاً نام کاربری را وارد نمایید")| lengthRestriction(username, 4, 8)){
if(notEmpty(password, "لطفاً کلمه عبور را وارد نمایید")| lengthRestriction(password, 6, 10)){
if(notEmpty(scurityqs, "لطفاً سوال امنیتی را انتخاب نمایید")| madeSelection(scurityqs, "Please Choose a securty question")){
if(notEmpty(answer, "لطفاً جواب امنیتی را وارد نمایید")&&isAlphanumeric(answer, "Numbers and Letters Only for answer")){
if(notEmpty(addr, "لطفاً آدرس را وارد نمایید")&&isAlphanumeric(addr, "Numbers and Letters Only for Address") ){

return true;
}
}
}
}
}
}
}
}
}


return false;

}

function notEmpty(elem, helperMsg){
if(elem.value.length == 0){
alert(helperMsg);
elem.focus(); // set the focus to this input
return false;
}
return true;
}

/*function isNumeric(elem, helperMsg){
var numericExpression = /^[0-9]+$/;
if(elem.value.match(numericExpression)){
return true;
}else{
alert(helperMsg);
elem.focus();
return false;
}
}*/

function isAlphabet(elem, helperMsg){
var alphaExp = /(^([A-Za-z]|[\u0600-\u06FF]){3,})$/g;
if(elem.value.match(alphaExp)){
return true;
}else{
alert(helperMsg);
elem.focus();
return false;
}
}

function isAlphanumeric(elem, helperMsg){
var alphaExp = /^[0-9a-zA-Z]+$/;
if(elem.value.match(alphaExp)){
return true;
}else{
alert(helperMsg);
elem.focus();
return false;
}
}

function lengthRestriction(elem, min, max){
var uInput = elem.value;
if(uInput.length >= min && uInput.length <= max){
return true;
}else{
alert("Please enter between " +min+ " and " +max+ " characters");
elem.focus();
return false;
}
}

function madeSelection(elem, helperMsg){
if(elem.value == "Please Choose"){
alert(helperMsg);
elem.focus();
return false;
}else{
return true;
}
}

function emailValidator(elem, helperMsg){
var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
if(elem.value.match(emailExp)){
return true;
}else{
alert(helperMsg);
elem.focus();
return false;
}
}
}
function isNumeric1(elem, helperMsg){
var numericExpression = /^[0-9]+$/;
if(elem.value.match(numericExpression) && elem.value.length ==10){
return true;
}else{
alert(helperMsg);
elem.focus();
return false;
}
}
function isNumeric2(elem, helperMsg){
var numericExpression = /^[0-9]+$/;
if(elem.value.match(numericExpression) && elem.value.length ==11){
return true;
}else{
alert(helperMsg);
elem.focus();
return false;
}
}