سلام بچه ها من یک فرم دارم که وقتی کلیک میکنی روش. مشکل داره که اگر مثلا دابل کلیک کنی دو بار فرم به دیتابیس میره. میخام محدودیت ایجاد کنم که هر ثانیه فقط یک کلیک اجازه زدن در ثانیه باشه.
آخه فرم من یه محاسباتیم با ریاضی انجام میده که اگه چند بار پشت سر هم کلیک بشه جواب درستی رو ارایه نمیده فقط باید یک بار کلیک بشه و مکث بشه که محاسبات رو برنامه انجام بده و بعد بتونه کلیک بعدیشو انجام بده.
سپاسگذارم اگه راهنمایی بشه
@hesammousavi
شما میتونید مقداری با عنوان loading درست کنید و هر وقت محاسبه شروع شد loading رو برابر با true قرار بدید و اگر روی دکمه کلیک شد شرط بزارید که اگر loading برابر با true بود اجرا نشه دوباره تا زمانی که پردازش قبلی تموم بشه و مقدار loading برابر با false بشه
سلام از تابع setTimeout میتونید برای این کار استفاده کنید.
این هم یک مثال ساده:
"
let Time = true;
function clickPerSecond() {
if (Time == true) {
//get text from input
let text = document.getElementById('test').value;
//show text in HTML by innerHTML
document.getElementById('test2').innerHTML = text;
//set Time false
Time = false;
} else {
//Don't Access Message
document.getElementById('test2').innerHTML = "Don't Access";
// setTimeout for set Time true after 1 Second
setTimeout(function () {
Time = true;
}, 1000);
}
}"
@hesammousavi
حسام جان عاااااالی بود این حرکت. من اول خواستم کلیک رو ثانیه ای کنم که ممکن بود بعضی وقتا بیشتر از یک ثانیه طول بکشه نتیجه که این باعث مشکل میشد ولی با این حرکتی که گفتین باعث میشه هر وقت نتیجه قبل اوکی شد نتیجه جدید رو اعلام کنه و دیگه بستگی به سرعت سرور و سرعت محاسبه داره و مشکلی هم پیش نمیاد. سپاسگذارم قربان
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟