جلوگیری از ارسال فرم در شرایط خاص

abbasjoon

Member
سلام. ببخشید بچه ها ، اگه سوالم تکراریه. جستجو کردم ولی پیدا نکردم. کدی که در قسمت submit یک فرم قرار می گیره و در مواقعی که مثلا بعضی از فیلدها خالی هستند یه پیغام می ده و جلوگیری می کنه از ارسال فرم. این کدش رو می خوام.
 

farik

Well-Known Member
با سلام...
براي اين كار تو تگ فرم خاصيت onsubmit رو تعريف ميكني و برابر يك تابع قرار ميدي.(تابعي كه قبلا براي چك كردن ساختي )بعد تو تابع هم با استفاده از عبارات منظم ميگي كه اگه اين شرايط رو داشت بفرست وگرنه اررور بده ...
اميدوارم متوجه شده باشي...اگه نفهميدي بگو يك مثال برات بزارم...
يا علي...
 

abbasjoon

Member
سلام اگه میشه مثال بزن چون من زیاد با جاوا اسکریپت آشنا نیستم
 

foranyone

Well-Known Member
منم از onsubmit استفاده کردم ولی بازم action فرم اجرا شد!! در ضمن تابع onsubmit اجرا نشد در حالی که وقتی به onclick

تبدیلش کرم اجرا می شه:-؟؟
 

shnoit

Well-Known Member
سلام اگه میشه مثال بزن چون من زیاد با جاوا اسکریپت آشنا نیستم

HTML:
<!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>Untitled Document</title>
<script language="JavaScript" type="text/javascript">
<!--
function CheckForm(){
			errors=''
            if ( document.Form.MajidOnline.value =="" ){
			errors+='           لطفا نام خود را وارد نمائید'+ ' -' + '\n';
			}
			if (errors!=""){												
				alert(' !خطاهای ذیل را زیر بررسی نمائید\n'+errors);
				return false;
			}
			else {
				return true;
			}	 
}
//-->
</script>

</head>

<body>
<form onsubmit="return CheckForm();" name="Form" action="page.php" method="post">
<input name="MajidOnline" id="MajidOnline" type="text" size="35" /><br />
<input name="submit"  type="submit" value="Send" />
</form>
</body>
</html>
اما توضیحات:
به عبارات MajidOnline و Form و همچنین page.php دقت کن.
راستی جواب اون یکی سوالتم پیدا کردم. همون که میخواستی محدود کنی به اعداد. یعنی فقط عدد ارسال بشه.:)
 

abbasjoon

Member
نه نمیدونم. الان بچه ها میان کمک می کنن. بیا دو نفری داد بزنیم
 

shnoit

Well-Known Member
عباس جون مشکلت باز کجاست !؟
من تست زده کد رو برات گذاشتم! الان کجای کارت باز گیره !!!!!؟؟؟
 

abbasjoon

Member
نمیدونم والا. کد رو دقیقا کپی کردم ولی به هیچ وجه کدی که دادی اجرا نمیشه. فکر کنم مشکل توی onsubmit باشه. که باعث میشه کنترل برنامه به کد جاوا اسکریپت منتقل نشه
 

farik

Well-Known Member
باسلام...
دوست عزيزم آقاي shnoit جواب خوبي دادند ولي براي تسلط بيشتر ميتونيد از عبارات منظم استفاده كنيد.....من در اينجا با استفاده از رويداد onblur و چند تابع با نمايش پيام و غير فعال كردن submit به كاربر اشتباه بودن داده رو متذكر ميشم....
اينم از مثال:
<html dir="rtl">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="fa">
<meta lang="fa-IR" xml:lang="fa-IR">
<meta name="Language" content="Persian">
<title>Tabotab LinkBox</title>

<style>
<!--
body { font-family: Tahoma; font-size: 9pt; color: #6D7A81; background-color: #FFFFFF ; SCROLLBAR-FACE-COLOR: #4C93BF; SCROLLBAR-HIGHLIGHT-COLOR: #4C93BF; SCROLLBAR-SHADOW-COLOR: #4C93BF; SCROLLBAR-3DLIGHT-COLOR: #4C93BF; SCROLLBAR-ARROW-COLOR: #E2E9EA; SCROLLBAR-TRACK-COLOR: #E2E9EA; SCROLLBAR-DARKSHADOW-COLOR: #E2E9EA ;}
.SearchBTN {font-family: Tahoma; font-size: 8pt; color: #FFFFFF; border: 1px solid #FC6605;background-color: #FDA264; text-align:center; height:18; padding-bottom:3px;}
.SearchBox { font-family: Tahoma; font-size: 8pt; color: #6D7A81; height: 18; border: 1px solid #DAE2E3; BACKGROUND: #F3F5F5;}

-->
</style>
<script>
a=b=c=d=false;
//--- Seyed Mahdi Movashah ©2003 @I.R.IRAN Version 2.1 ---\\
var mahal="", blang="فارسي", mfa="", curin, mova, defe="", help
//mahal="ALL"
function mfin()
{
mtag=window.event.srcElement;
if ((((mtag.tagName=="INPUT" && mtag.type=="text") || mtag.tagName=="TEXTAREA") && (mahal=="ALL" || mtag.lang=="fa")))
{
if (mfa=="hast") mlang.outerHTML="";mtag.insertAdjacentHTML("beforebegin", "<span id=mlang style='background-color:gray; font-size:11; color:white; position:absolute; margin-left:17; padding-right:1; padding-left:2; padding-bottom:2; font-family:tahoma; cursor:default;' onclick='toit()'>"+blang+"</span>");curin=mtag;mlang.style.marginTop=mtag.offsetHeight;mtag.style.direction="rtl";mfa="hast";}else{if (mfa=="hast" && window.event.srcElement!=mlang){mlang.outerHTML="";mfa="";}if (help){hel.outerHTML="";help=false;}}}function toit(){if(blang=="فارسي") blang="English"; else blang="فارسي";mlang.innerHTML=blang;curin.focus();}function mkdown(){
mtag=window.event.srcElement;mkey=window.event.keyCode;allcode="|72|70|192|74|69|219|221|80|79|78|66|86|67|220|83|65|87|81|88|90|85|89|84|82|186|222|71|76|75|188|73|68|77|190|191|48|57|";allharf="ابپتثجچحخدذرزژسشصضطظعغفقكگلمنوهيئ./09";allscode="|72|188|219|221|70|90|191|186|77|190|65|83|68|81|87|69|71|84|78|66|89|86|82|74|80|79|73|85|48|57|";allsharf="آؤ»«ّة؟:ءأًٌٍَُِْ،أإ؛ؤ‍ـ©®™€()";if ((((mtag.tagName=="INPUT" && mtag.type=="text") || mtag.tagName=="TEXTAREA") && (mahal=="ALL" || mtag.lang=="fa"))){mtag.caretPos = document.selection.createRange();
mk=allcode.indexOf("|"+mkey+"|");mpos=0;ml=0;if (mk>-1 && blang=="فارسي"){if (!window.event.ctrlKey){if (!window.event.shiftKey && !window.event.ctrlKey){if (mk>0){mall=allcode.substr(0,mk);while (mpos>-1){mpos=mall.indexOf("|",mpos+1);ml++;}} if(mtag.caretPos.text!=0) document.selection.clear(); mtag.caretPos.text=allharf.substr(ml,1);return(false);}else{mk=allscode.indexOf("|"+mkey+"|");if (mk>-1){if (mk>0){mall=allscode.substr(0,mk);while (mpos>-1){mpos=mall.indexOf("|",mpos+1);ml++;}}mtag.caretPos.text = allsharf.substr(ml,1);if (mkey==80) mtag.caretPos.text = "";}return(false);}}else{if (mkey==75 && window.event.ctrlKey && blang=="فارسي" && !help){
}}}if (mkey==32 && window.event.shiftKey && blang=="فارسي"){mtag.caretPos.text = "‏";return(false);}}}document.onfocusin=mfin;document.onkeydown=mkdown;
//--- Contact: [email protected], +98(0)251 7741166 ---\\
function opener2(add)
{
window.open(add,"","toolbar=no,location=no,directories=no,menubar=no,scrollbars=yes,status=no,resizable=no,width=500,height=400;");
}
function checkurl(x)
{
url = /^http:\/\/+([a-zA-Z0-9_.-]+)\.+([a-zA-Z0-9_.-]{2,4})$/;
if(!url.test(document.add.url.value))
{
window.document.getElementById('no').style.display='inline'
document.add.send.disabled=true;
}
else{a=true;window.document.getElementById('no').style.display='none'
if(a&&b&&c&&d)
{
document.add.send.disabled=false;
}else{document.add.send.disabled=true;
}
}
}
function checkmail(x)
{
mail = /^([a-zA-Z0-9_.-]+)\@+([a-zA-Z0-9_.-]+)\.([a-zA-Z0-9_.-]{2,4})$/;
if(!mail.test(document.add.mail.value))
{
window.document.getElementById('fmail').style.display='inline'
document.add.send.disabled=true;
}
else{b=true;window.document.getElementById('fmail').style.display='none'
if(a&&b&&c&&d)
{
document.add.send.disabled=false;
}else{document.add.send.disabled=true;
}
}
}
function checkup(x,y)
{
if(x<=6)
{
window.document.getElementById('f'+y).style.display='inline'
document.add.send.disabled=true;

}
else
{
if(y=="pass"){d=true}else{c=true};window.document.getElementById('f'+y).style.display='none';}
if(a&&b&&c&&d)
{
document.add.send.disabled=false;
}else{document.add.send.disabled=true;
}
}

</script>
</head>
<body>
<form method="POST" onsubmit="go()" name=add action="analyz.php">

<span style="font-size: 8pt; "><table border="0" width="100%" id="table2" cellspacing="0" cellpadding="0">
<tr>
<td width="91%" valign="bottom">
<span title="هم اكنون شما در اين بخش هستيد" style="font-size: 8pt; text-decoration: none"><font color="#FC6605">»</font><font color="#6D7A81">افزودن
لینک</font></span><span style="font-size: 8pt; "><font color="#6D7A81">
</font><font color="#FC6605">»</font><a onclick="opener2('law.htm')" href="#"><font color="#6D7A81"><span style="text-decoration: none">قوانين لينك باكس</span></font></a>
</td>
<td width="9%" valign="bottom">
<p align="left"><b>Add
<font color="#FC6605">Link</font></b></td>

</tr>
</table>

لطفا پيش از ثبت لينك قوانين لنك باكس را مطالعه نماييد.<br>عنوان لینک : <input Class="SearchBox" type="text" name="name" size="25" lang=fa maxlength=280></p>
<p>&nbsp;آدرس
لینک :
<input Class="SearchBox" type="text" name="url" size="25" dir="ltr" title='with http://' value="http://" onblur='checkurl(this.value)'><font color="#FF0000" style="font-size: 8pt"><span id='no' lang="fa" style='display:none'>لطفا
آدرس صحيح را وارد نماييد.</span></font></p>
<p>&nbsp;&nbsp;&nbsp; توضیحات :
<input Class="SearchBox" type="text" name="desc" size="25" lang=fa maxlength=27 alt='' title='توضيحات حداكثر 27 كاراكتر باشد'></p>
<p>

<span style="font-size: 8pt; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ايميل:&nbsp;

<input Class="SearchBox" type="text" name="mail" size="25" dir="ltr" onblur='checkmail(this.value)'><font color="#FF0000"><span id='fmail' lang="fa" style='display:none'>لطفا
&nbsp;ايميل
صحيح را وارد نماييد.</span></font></span></p>
<p>

&nbsp;نام كاربري:<span style="font-size: 8pt; ">&nbsp;
<input Class="SearchBox" type="text" name="user" size="25" dir="ltr" onblur='checkup(this.value.length,this.name)' ><font color="#FF0000"><span id='fuser' lang="fa" style='display:none'>نام كاربري
حداقل بايد 6 حرف باشد.</span></font></span></p>
<p>

كلمه عبور:

<span style="font-size: 8pt; ">&nbsp;
<input Class="SearchBox" type="password" name="pass" size="25" dir="ltr" onblur='checkup(this.value.length,this.name)'><font color="#FF0000"><span id='fpass' lang="fa" style='display:none'>كلمه
عبور حداقل بايد 6 حرف باشد.</span></font></span><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span lang="en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input Class="SearchBTN" type="submit" value="ارسال" name="send" style='cursor:"hand"' title='مشخصات خود را وارد نماييد تا دكمه ارسال فعال شود'></p></p>

<script>function go(){
a=add.user.value;
if(a.length<=6)
{add.action='';}
if (add.url.value==""||add.url.value=="http://")
{add.action=''
alert('لطفا آدرس سايت يا وبلاگ خود را وارد نماييد')
}
else{if (add.name.value=="")
{add.action=''
alert('لطفا عنوان لينك خود را انتخاب نماييد')
}else{
if (add.desc.value=="")
{add.action=''
alert('لطفا توضيحات لازم براي لينك خود را يادداشت نماييد')
}}}
}
document.add.send.disabled=true;</script>
</body>
</html>
 

shnoit

Well-Known Member
خواهش میکنم farik جان.
اما فک نمیکنی کد خیلی طولانی !؟
تو اون مقاله که لینکش رو گذاشتم خیلی مفید و مختصر گذاشته. تو چنتا خط کار رو تموم کرده.
کد شما هم باید جالب باشه!:)
باز ممنون.
عباش جون خوب شد که مشکلت راه افتاد.
موفق باشی
 

farik

Well-Known Member
با سلام...
قبول دارم كه يكم طولانيه ولي به جاش كارايي اون هخيلي بيشتر از يك چك ساده است...
اگه نگاهي به كد بندازين متوجه ميشي كه مال يك صفحه عضويت....
و در واقع كاربرد آموزش...يك نگاهي بهش بندازين ضرر نميكنين...
(البته قبول دارم كه ميشد خلاصش كرد....)
 

جدیدترین ارسال ها

بالا