شاید توی سایتهای مختلف دیده باشید که وقتی یه فیلد خاصی رو پر نمیکنید یه پیغام میگیرید که این فیلد حتماً باید پر بشه. چک کردن اینکه یک فیلد یا فیلدهائی پر شدن یا نه ساده است، فرض کنیم یک فرم به شکل زیر داریم:

<form name="myform" action="dosomething.asp" method="post">

Please write anything here:

<input type="text" name="field1">

<input type="submit">

</form>

اگه با ASP بخواین چک کنید که field1 پر شده یا نه که خیلی ساده است، کافیه که کد زیر رو توی فایل dosomething.asp بگذارید:

<% if (request.form("field1")="") then

Response.Write "Field is Empty, Please hit back button and fill it"

else

' baghiyeye codhaye file...

end if

%>

اما اینکار با ASP زیاد جالب نیست، چون به هر حال وقت میبره که فرم پردازش بشه و یه صفحه دیگه Load میشه یا اینکه مجبوریم همون صفحه رو Refresh کنیم.

ایده بهتر و عمومی تر استفاده از java-script است. با استفاده از java-script قبل از اینکه فرم پردازش بشه میتونیم چک کنیم که اون فیلد پر شده یا نه. به این ترتیب:



if(document.myform.field1.value="") {

alert('please fill this field');return false;

}

یعنی اگر مقدار field1 مربوط به فرم myform خالی بود یک پیغام بده و از پردازش فرم جلوگیری کن. اگه از return false استفاده نکنیم پیغام میده اما فرم پردازش میشه.کد نهایی ما باید شبیه به این باشه:

<html>

<head>

<script language="java-script">

function checkval()

{

if(document.myform.field1.value=="") {

alert('please fill this field');return false;}

}

</script>

</head>

<body>

<form name="myform" action="dosomething.asp" method="post" onSubmit="return checkval();">

Please write anything here:

<input type="text" name="field1">

<input type="submit">

</form>

</body>

</html>



باید حتماً در تگ form در قسمت onSubmit از return استفاده کنیم تا توی اسکریپت ما return false عمل کنه و صفحه dosomething.asp پردازش نشه. صفحه dosomething.asp ما میتونه هرچیزی باشه که من این کد رو براش گذاشتم:



<javascript:openWin('/WorldClient.dll?Session=KXEYPXV&View=Compose&To=%@ language=vbscript%&New=Yes','Compose',800,600,'yes ');>
<%option explicit%>
<%
dim m
m=request.form("field1")
if (m<>"") then Response.Write "You wrote<b> "&m&" </b>in form, <br>if you want see java-script action <a href=java-script:history.back();>click here</a> and leave the form empty and submit."
%>



البته باید توجه داشت که بعد از کلمه then باید تا رسیدن به " متنها توی یک خط و بعد از then باشن. با کمی خوش ذوقی و حوصله میشه شرط رو تغییر داد و بجای خالی بودن فرم مثلاً میشه گفت اگه فرم حاوی یه متن خاص بود یه پیغام بده.

برای راحتی کار، این نمونه رو از آدرس http://www27.brinkster.com/ilovedot/articles/check.html میتونید ببینید.


Copyright © 2004-2005 www.golpesar.com™