PDA

View Full Version : جلو گیری از کلیک مجدد؟



accpascal
دوشنبه 10 اسفند 1388, 19:46 عصر
دوستان با سلام
چطور میشه از کلیک شدن مجدد یک دکمه جلوگیری کرد

web developer
دوشنبه 10 اسفند 1388, 20:03 عصر
با جاوا میتونی پس از کلیک اون باتن رو disable کنی!

accpascal
دوشنبه 10 اسفند 1388, 20:05 عصر
با جاوا میتونی پس از کلیک اون باتن رو disable کنی!
اگر میشه لطف کن و نمونه کد بنویس ممنون

Milad Mohseny
دوشنبه 10 اسفند 1388, 22:03 عصر
<input type="submit" id="Submit" name="Submit" value="Submit" onclick="javascript:document.form1.Submit.disabled =1; document.form1.submit();">

يا


<input type="submit" name="sub" value="submit" onclick="this.disabled=true;submit();" />

Peyman.Gh
دوشنبه 10 اسفند 1388, 22:58 عصر
بدون جاوا هم میشه


protected void Button1Click(object sender, EventArgs e)
{
Button1Enabled = false;
}

accpascal
دوشنبه 10 اسفند 1388, 23:04 عصر
بدون جاوا هم میشه


protectedvoid Button1Click(object sender, EventArgs e)
{
Button1Enabled = false;
}

این کد عمل نمی کنه (البته اگر صفحه رفرش بشه عمل می کنه)
من می خواهم قبل از رفرش صفحه کلیک دوم عمل نکنه

Peyman.Gh
دوشنبه 10 اسفند 1388, 23:12 عصر
یعنی چی ؟! مگه با کلیک بر روی باتن عملی انجام نمیشه ؟!
خوب صفحه رفرش میشه دیگه!

accpascal
دوشنبه 10 اسفند 1388, 23:21 عصر
یعنی چی ؟! مگه با کلیک بر روی باتن عملی انجام نمیشه ؟!
خوب صفحه رفرش میشه دیگه!
شما وقتی با سرعت خوب کارکنی مشکلی پیش نمیاید ولی اگر سرعت کند باشد
مثلا فرض کنید با کلیک برروی یک باتن شما باتن دیگری را غیر فعال می کنید ولی باتن دوم تا صفحه رفرش نشود غیر فعال نخواهد شد و یا متال دوم شما فرض کنید کلیک برروی یک باتن عمل ذخیره یک رکورد را انجام دهد حال اگر شما باتن را دوبار کلیک کنید رکورد دوبار ذخیره خواهد شد
چگونه از این عمل جلوگیری شود؟

accpascal
دوشنبه 10 اسفند 1388, 23:23 عصر
یعنی چی ؟! مگه با کلیک بر روی باتن عملی انجام نمیشه ؟!
خوب صفحه رفرش میشه دیگه!
مثال:
دو باتن داریم باتن 1 و باتن 2
باتن 1 رکوردی ذخیره می کند و باتن 2 عمل انصراف را انجام می دهد
حال اگر ما باتن یک را کلیک کنیم و قبل از رفرش صفحه باتن 2 را هم کلیک کنیم چه خواهد شد؟

Peyman.Gh
دوشنبه 10 اسفند 1388, 23:30 عصر
خوب از UpdatePanel میشه استفاده کرد :متفکر:

البته دوست عزیز خودتون حرف خودتون رو رد میکنید .

اگر اون باتن برای متوقف کردن عملیاتی که با باتن 1 انجام میشود خوب چه نیازی دارید که غیر فعالش کنید ؟!:لبخند:

h.alizadeh
دوشنبه 10 اسفند 1388, 23:47 عصر
فکر کنم بااستفاده از خاصیت onclientClickدکمه اول با جاوااسکریپت دکمه 2 رو غیرفعال کن.

ولی به چیزایی حواستون هست!
(خب هر دکمه ای که زودتر کلیک بشه دستورات اون زودتر از طرف سرور انجام میشه مثلا دکمه 1 اول کلیک میشه خب در قسمت کدها اولین دستورشو بنویسیم خب دکمه 2 غیرفعال !)

Peyman.Gh
دوشنبه 10 اسفند 1388, 23:55 عصر
این دوستمون میگه اگه حجم صفحه زیاد بود و سرعت لود شدن کند باشه !
و این هم متوجه نشدم که اگر نقش باتن دیگر انصراف چرا باید غیر فعال بشه

Himalaya
سه شنبه 11 اسفند 1388, 00:43 صبح
و این هم متوجه نشدم که اگر نقش باتن دیگر انصراف چرا باید غیر فعال بشه
2 تا دکمه داره ، انجام عملیات و انصراف... میخواد کاربر نتونه پشت سر هم چند بار دکمه انجام عملیات رو بزنه (دکمه انصراف رو نمیخواد غیر فعال کنه)

این دوستمون میگه اگه حجم صفحه زیاد بود و سرعت لود شدن کند باشه
تو حالت نرمال یه چند ثانیه طول میکشه تا صفحه بعد از کلیک لود بشه... دوستمون میخوان تو این مدت هم کسی نتونه مجدد رو دکمه انجام عملیات کلیک کنه
باید از همون جاوا اسکریپت استفاده کنی... مثلا همین که رو دکمه انجام عملیات کلیک کردی اون دکمه ناپدید بشه


<script>
function call()
{
document.getElementById('btninsert').style.visibil ity='hidden';
}
</script>




<asp:ButtonID="btninsert"runat="server"
Text="do "
OnClick="btninsert_Click"/>




protectedvoid Page_Load(object sender, EventArgs e)
{
btninsert.Attributes.Add("onclick", "call()");
}

واسه انصراف هم یه فانکشن بنویس دکمه انجام عملیات رو برگردون به حالت اولش...
کلا راههای رسیدن به خدا زیاده اینم یکیش :چشمک:

Milad Mohseny
سه شنبه 11 اسفند 1388, 08:30 صبح
کد:

<input type="submit" id="Submit" name="Submit" value="Submit" onclick="javascript:document.form1.Submit.disabled =1; document.form1.submit();">

يا

کد:

<input type="submit" name="sub" value="submit" onclick="this.disabled=true;submit()
کدی که گذاشتم رو نگاه کردی؟
من خودم برای این مشکل دارم از همین روش استفاده میکنم و مشکلی هم نداره.
اگه از asp:button استفاده میکنی کافیه به جای onclick کد بالا onclientClick رو قرار بدی.

accpascal
سه شنبه 11 اسفند 1388, 11:52 صبح
2 code]
<script>
function call()
{
document.getElementById('btninsert').style.visibil ity='hidden';
}
</script>
[/code]


:چشمک:
از دستور فوق ایراد می گیره فکر می کنم بجای style باید از خاصیت دیگری استفاده کنیم

accpascal
سه شنبه 11 اسفند 1388, 11:55 صبح
کدی که گذاشتم رو نگاه کردی؟
من خودم برای این مشکل دارم از همین روش استفاده میکنم و مشکلی هم نداره.
اگه از asp:button استفاده میکنی کافیه به جای onclick کد بالا onclientClick رو قرار بدی.
ایراد این کد اینه که دیگه دستورات on_click اجرا نمی شه

Peyman.Gh
سه شنبه 11 اسفند 1388, 12:01 عصر
این کد درسته
<script language="javascript" type="text/javascript">
function call()
{
document.getElementById('Button4').style.visibilit y='hidden';
}
function Button4_onclick() {
call();
}
</script>

accpascal
سه شنبه 11 اسفند 1388, 12:11 عصر
کدی که گذاشتم رو نگاه کردی؟
من خودم برای این مشکل دارم از همین روش استفاده میکنم و مشکلی هم نداره.
اگه از asp:button استفاده میکنی کافیه به جای onclick کد بالا onclientClick رو قرار بدی.
ایراد این کد اینه که دیگه دستورات on_click اجرا نمی شه

accpascal
سه شنبه 11 اسفند 1388, 12:27 عصر
این کد درسته
<script language="javascript" type="text/javascript">
function call()
{
document.getElementById('Button4').style.visibilit y='hidden';
}
function Button4_onclick() {
call();
}
</script>
این دفعه ارور object required می ده(وقتی داره دستورات call را اجرا می کنه)

accpascal
سه شنبه 11 اسفند 1388, 12:28 عصر
این دفعه ارور object required می ده(وقتی داره دستورات call را اجرا می کنه)
آقا درست شد خیلی ممنون اشکال از من بود

accpascal
سه شنبه 11 اسفند 1388, 12:53 عصر
یک سوال دیگر:
اگر بجای hidden شدن بخواهیم disable شود چکارکنیم

Milad Mohseny
سه شنبه 11 اسفند 1388, 13:36 عصر
اینو ببین الان امتحان کردم کار میکنه
این کلید

<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click"/>

این کد سمت سرور که باید تو Page_Load باشه

if (!Page.IsPostBack)
Button1.Attributes.Add("onclick", "this.disabled=true;" + ClientScript.GetPostBackEventReference(Button1, "").ToString());

اگه بگی کار نمیکنه ... ;-)

accpascal
سه شنبه 11 اسفند 1388, 15:48 عصر
اگه بگی کار نمیکنه ... ;-)

دفعه قبل نگفتم کارنمی کنه شما لطفا یکبار دیگر آن را بخوانید
این کد خیلی عالی کارکرد ممنون

Milad Mohseny
چهارشنبه 12 اسفند 1388, 11:40 صبح
دفعه قبل نگفتم کارنمی کنه شما لطفا یکبار دیگر آن را بخوانید
این کد خیلی عالی کارکرد ممنون
دوست خوبم شوخی کردم بخندیم باهم.:لبخندساده: نمیدودنم چرا تو این سایت تا کوچکترین حرفی بزنی همه شمشیرارو میکشن.:لبخند: باور کنید جوابشو نمیدونم. :گیج: :)