واضح آرشیو وب فارسی:سایت ریسک: بررسي مقادير فرم قبل از ارسال Yaghob 30 بهمن 1385, 17:08سلام دوستان فرم زير رو فرض كنيد: <form action=register.php method=POST> عنوان سايت: <input type=text name=Title><br> ايميل: <input type=text name=Email><br> آدرس وب: <input type=text name=adrs value="" dir=ltr><br> <select size="1" name="Group"> <option selected value="0"><يك گروه كاري را انتخاب كنيد></option> <option value="1">همه چيز از همه جا (محدوديت موضوعي ندارد)</option> <option value="2">علم و فن آوري</option> <option value="3">رايانه و اينترنت</option> <option value="4">برق و الكترونيك</option></select><br> <input type="submit" value="ارسال" name="SubmitBtn"> <input type="reset" value="پاك كردن فرم" name="Button0"> </form> ميخوام قبل از اينكه اطلاعات فرم به صفحه register.php ارسال بشه ابتدا خالي نبودن تك تك فيلدها مشخص بشه و اگر فيلد خالي بود با يك هشدار كاربر دوباره به فرم هدايت بشه. (همچنين اگر از عنصر select هيچكدوم رو انتخاب نكرده بود هم همينطور) لطفاً راهنمايي كنيد. خيلي ممنون reza 699 30 بهمن 1385, 17:23شرمنده الان وقت ندارم توضيح بدم ولي چاره ي كارت با جاوا اسكريپته Yaghob 30 بهمن 1385, 17:42ممنون ميدونم با جاوا اسكريپته ولي نميدونم چطوري؟ لطفاً يكي راهنمايي كنه... Yaghob 30 بهمن 1385, 19:46با تشكر از جوابايي كه ندادين...:shock: خودم جوابشو پيدا كردم. ميذارمش اينجا اگه كسي اين مشكل رو داشت خودش حلش كنه و... :sad: منبع اين مقاله مفيد: تعيين اعتبار فرم قبل از ارسال () خوب حالا اصل مطلب :) تعيين اعتبار فرم قبل از ارسال امروزه صفحات حاوي فرم را در بسياري از سايت ها (حداقل براي ارسال پست الکترونيک براي مديريت سايت) مي توان مشاهده نمود. بسياري از اين فرمها داراي قوانيني در ارتباط با اطلاعات ورودي مي باشند (براي مثال لزوم وارد کردن بعضي از اطلاعات و يا اطمينان از صحيح بودن فرمت پست الکترونيکي و ...). براي تعيين اعتبار اطلاعات وارد شده دو راه حل کلي وجود دارد. ١) استفاده از زبانهاي Server Side مانند PHP يا ASP ٢) استفاده از زبانهاي Client Side مانند JavaScript تفاوت اصلي در اين دو حالت در زمان تعيين اعتبار فرم مي باشد به اين معنا که در صورت استفاده از زبانهاي Server Side ابتدا فرم به صفحه مقصد (که در action مشخص شده است) ارسال خواهد شد و بعد از آن اعتبار اطلاعات وارد شده مورد بررسي قرار مي گيرد. اما در صورتي که براي اين کار از زبانهاي Client Side استفاده شود، تعيين اعتبار قبل از ارسال اطلاعات و بر روي کامپيوتر شخص بازديد کننده (Client) انجام خواهد شد و در صورت درستي اطلاعات فرم به صفحه مقصد ارسال خواهد شد. بديهي است که تعيين اعتبار بر روي کامپيوتر Client (و با استفاده از زبانهاي Client Side) از بسياري از جهات (بخصوص: صرفه جويي در وقت) بسيار بهتر از استفاده از زبانهاي Client Side مي باشد. البته به اين نکته نيز بايد توجه داشت که انجام اين عمل با استفاده از زبانهاي Client Side همواره ميسر نيست براي مثال در صورتي که در سيستم ثبت نام کاربران بخواهيم از وجود و يا عدم وجود نام کاربري (Username) انتخاب شده توسط شخصي (در هنگان ثبت نام) اطلاع حاصل کنيم، مجبور خواهيم بود تا با استفاده از زبانهاي Server Side و اتصال به بانک اطلاعاتي مربوط به کاربران اين کار را انجام دهيم. اما در همين حالت نيز بعضي از موارد در تعيين اعتبار فرم را مي توان با استفاده از زبانهاي Client Side انجام داد. (براي مثال، وارد شدن نام کاربري و کلمه عبور) در اين مقاله مي خواهيم به نحوه انجام اين کار از طريق زبانهاي Client Side بپردازيم. قبل از توضيح در ارتباط با چگونگي انجام اين کار به مثال زير توجه نماييد. در اين مثال فرض بر آن است که کلمه عبور و تاييد آن از کاربر توسط يک فرم گرفته مي شود، فرض مي کنيم که براي تعيين اعتبار اطلاعات وارد شده (کلمه عبور و تاييد آن حتما بايد وارد شوند و مقدار آنها بايد با هم برابر باشد) از يک زبان Client Side مانند JavaScript استفاده مي شود. <html> <head> <title>Checking form with JavaScript </title> <script language="javascript" type="text/javascript"> function CheckForm(formID){ //Checking for password value if (formID.password.value == "") { alert("please enter password"); formID.password.focus(); return false; } //Checking for confirm value if (formID.confirm.value == "") { alert("please enter password confirm"); formID.confirm.focus(); return false; } //Checking for password and confirm (must be equal) if(formID.password.value != formID.confirm.value) { alert("password & confrim did not match"); formID.password.focus(); return false; } return true } </script> <style type="text/css"> <!-- body, table, form, input { font-family: verdana, arial; font-size: 12px; } --> </style> </head> <body> <center> <form method="post" action="destination.php" onsubmit="return CheckForm(this)"> <table border="0" cellpadding="2" cellspacing="0" width="300px"> <tr><td align="right" width="20%">Password: </td><td align="left" width="80%"><input type="password" name="password"></td></tr> <tr><td align="right" width="20%">Confirm: </td><td align="left" width="80%"><input type="password" name="confirm"></td></tr> <tr><td align="center" colspan="2"><input type="submit" value="SUBMIT"></td></tr> </table> </form> </center> </body> </html> با کمي دقت در اين مثال مي توان متوجه اصول انجام اين کار در صفحه فوق شد. يک تابع (با نام CheckForm در اين مثال) وجود دارد که ورودي آن يک Form Object مي باشد و خروجي آن نيز به صورت true (اطلاعات وارد شده معتبر است) يا false مي باشد. اين تابع در event ثبت فرم (onsubmit) با مقدار ورودي this (اشاره به فرمي که تابع را فراخواني ميکند) فراخواني شده و مقدار بازگشتي آن به فرم ارجائ داده مي شود. در صورتي که اين مقدار بازگشتي true باشد، ارسال فرم به صفحه مقصد (در اين مثال: destination.php) ادامه پيدا مي کند و در غير اين صورت عمل ارسال انجام نمي شود. بنابر اين به طور کلي مي توان نکات مهمي که در تعيين اعتبار فرم تاثير دارند را به صورت زير بيان نمود: ۱) عمل تاييد بوسيله يک تابع با مقدار ورودي فرم مورد نظر و مقدار خروجي true يا false انجام مي گيرد. (در مثال فوق، بخش اول تابع وارد شدن مقداري براي کلمه عبور را بررسي ميکند. در بخش دوم همين عمل در ارتباط با تاييد کلمه عبور انجام مي گيرد و در بخش نهايي برابر بودن مقادير وارد شده مورد بررسي قرار مي گيرد.) ۲) مقدار بازگشتي تابع اصلي (با استفاده از return) به فرم ارجاع مي شود. در غير اين صورت (عدم استفاده از retuen) عمل ارسال فرم به صفحه مقصد در هر حالتي انجام مي گيرد. ۳) تمامي اجزائ دورن فرم در تابع اصلي با فرمت {نام جزئ}.{نام فرم(ورودي تابع)} قابل دسترسي مي باشند. (به عبارت formID.password.value در تابع مثال قبل توجه نماييد.) با آرزوي موفقيت
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 1180]