PDA

View Full Version : دستور return در موقع فراخوانی یک Function



saeedgharedaghi
یک شنبه 13 آذر 1390, 12:39 عصر
با سلام خدمت دوستان برنامه نویس و ...
میخواستم بدونم دستور return در موقع فراخوانی یک function چه عملی را انجام میدهد و برای چی از این دستور استفاده میکنن


<input type="button" onClick="return My_Function();" />


از دوستان اگه کسی میدونه خواهش میکنم راهنمایی کنه .

narsic
یک شنبه 13 آذر 1390, 20:21 عصر
با سلام
به صورت کلی دستور بازگشت یا Return برای برگردوندن مقدار هست که معمولا در توابع ازش استفاده میشه
اما استفاده از اون در کدی که شما نوشتید باعث تعیین عملکرد دکمه میشه یعنی اینکه اگه در کد بالا تابع My_Function مقدار True برگردونه عملیات دکمه ادامه پیدا میکنه حالا این عملیات میتونه هر چیزی باشه مانند ثبت یک فرم و یا غیره و در صورتی که تابع مقدار False برگردونه عملیات دکمه ادامه پیدا نمیکنه (این حالت برای دیگر عناصر وب نیز وجود دارد)
موفق باشید

saeedgharedaghi
یک شنبه 13 آذر 1390, 20:37 عصر
دوست عزیز narsic
اگه راه داره میتونین رو یه مثال توضیح بدین

narsic
دوشنبه 14 آذر 1390, 12:37 عصر
با سلام

<form action="">
<input type="text" value="" id="name" name="name"/>
<input type="submit" onClick="return validateForm()" value="submit" />
</form>


function validateForm()
{
name=document.getElementById('name').value
if (name=="")
{
alert("Element Name Can't Empty");
return false;
}
else
return true;
در کد بالا زمانی که روی دکمه کلیک بشه تابع فراخوانی میشه و تابع بررسی میکنه در صورتی که شی name دارای مقدار باشه تابع مقدار True بر میگردونه که باعث میشه دکمه ما ادامه کارش رو انجام بده که همون ثبت فرم هست در غیر این صورت یک پیغام به کاربر نشون میده و مقدار False برمیگردونه که باعث جلوگیری از ثبت فرم میشه
*البته مبتونبم بجای اینکه در رویداد onClick دکمه تابع را فراخوانی کنیم در رویداد onSubmit فرم این کار رو انجام بدیم که باعث میشه فرم بدونه کنترل ثبت نشه.
موفق باشید

saeedgharedaghi
دوشنبه 14 آذر 1390, 14:55 عصر
واقعا ازت ممنونم

mmojbo
سه شنبه 15 فروردین 1391, 17:49 عصر
ممنونم narsic عزیز
خیلی عالی بود،
فقط یه سوال دارم :

من وقتی کاربر دکمه رو میزنه اگه فیلدها پرنباشن تو یه span یه پیغام میزارم تو همون صفحه
و اگه هم پر باشن یه پیغام اما پیغام درست فقط یه لحظه نمایش داده میشه! چرا؟مشکل کجاست؟
ممنون میشم راهنمایی کنی

اینم کد :

<form action="#" name="regForm">

<tr><td colspan="3"><h1>Register Form</h1></td></tr>
<tr><td colspan="3"><span id="sp"> </span></td></tr>



function check_sub()
{
var msgT= "Thanks, Your information registred";
var msgF= "Sorry, Please fill the Fields";
var SP=document.getElementById("sp");
var tname = document.getElementById("tname");
var tuser = document.getElementById("tuser");
var tpass = document.getElementById("tpass");
var tcpass = document.getElementById("tcpass");
var temail = document.getElementById("temail");

if(tname.style.borderColor=="green" && tuser.style.borderColor=="green" &&
tpass.style.borderColor=="green" && tcpass.style.borderColor=="green" && temail.style.borderColor=="green")
{
SP.innerHTML=msgT;
return true;
}
else{
SP.innerHTML=msgF;
return false;
}

}

narsic
شنبه 19 فروردین 1391, 21:44 عصر
ممنونم narsic عزیز
خیلی عالی بود،
فقط یه سوال دارم :

من وقتی کاربر دکمه رو میزنه اگه فیلدها پرنباشن تو یه span یه پیغام میزارم تو همون صفحه
و اگه هم پر باشن یه پیغام اما پیغام درست فقط یه لحظه نمایش داده میشه! چرا؟مشکل کجاست؟
ممنون میشم راهنمایی کنی

اینم کد :

<form action="#" name="regForm">

<tr><td colspan="3"><h1>Register Form</h1></td></tr>
<tr><td colspan="3"><span id="sp"> </span></td></tr>



function check_sub()
{
var msgT= "Thanks, Your information registred";
var msgF= "Sorry, Please fill the Fields";
var SP=document.getElementById("sp");
var tname = document.getElementById("tname");
var tuser = document.getElementById("tuser");
var tpass = document.getElementById("tpass");
var tcpass = document.getElementById("tcpass");
var temail = document.getElementById("temail");

if(tname.style.borderColor=="green" && tuser.style.borderColor=="green" &&
tpass.style.borderColor=="green" && tcpass.style.borderColor=="green" && temail.style.borderColor=="green")
{
SP.innerHTML=msgT;
return true;
}
else{
SP.innerHTML=msgF;
return false;
}

}

این کدی که الان گذاشتید باید صحیح عمل کنه. (ساختار و منطق صحیحه)
یه نمونه یا تمام کد رو قرار بدید. (تمام کدی که به این قسمت مربوط میشه)
*لطفا برای سوآل جدید تاپیک جدید ایجاد کنید.
موفق باشید

mmojbo
یک شنبه 20 فروردین 1391, 07:17 صبح
ممنون از توجه تون
اینم کد کامل :

<div id="d1">
<table>
<form action="regForm.htm" name="regForm" method="post">
<tr><td><img src="imgs/icc.png" width="40" height="40" /><h1>Register Form</h1></td></tr>
<tr><td><span id="sp"> </span></td></tr>

<tr><td><input type="text" name="name" maxlength="15" value="Please Enter Your Name..." id="tname" size="33"
onfocus="emptyField(document.regForm.name);" onblur="return chkname(document.regForm.name);" /></td></tr>

<tr><td><input type="text" name="user" value="Please Enter Your UserName..." id="tuser" size="33"
onfocus="emptyField(document.regForm.user);" onblur="checkField(document.regForm.user);" /></td></tr>

<tr><td><input type="text" name="pass" id="tpass" value="Please Enter Your PassWord..." size="33"
onfocus="emptyField(document.regForm.pass);" onblur="checkField(document.regForm.pass);"/></td></tr>

<tr><td><input type="text" name="cpass" id="tcpass" value="Please Re-Enter Your Password..." size="33"
onfocus="emptyField(document.regForm.cpass);" onblur="checkField(document.regForm.cpass);"/></td></tr>

<tr><td><input type="text" name="email" id="temail" value="Please Enter Your Email Address..." size="33"
onfocus="emptyField(document.regForm.email);" onblur="checkEmailAddress(document.regForm.email);" /></td></tr>


<tr><td><input type="submit" name="sub" value="Register" id="sub1" onclick="return check_sub();" /></td></tr>

</form>
</table>
</div>


تابع رو هم که قبلا نوشتم
همونطور که گفتم مشکل اینه که بعد از submit شدن فرم، فقط یه لحظه پیغام نمایش داده میشه و بعد به سرعت از بین میره!!!

ممنون