با عرض سلام و خسته نباشید خدمت اساتید
برام در مورد key codes در جاوااسکریپت سوال پیش اومد که آیا میشه همانطور که یرای یک دکمه Event اختصاص میدیم شرط هم بزاریم که اگر یک اتفاق افتاد n بار فلان دکمه رو تکرار کن؟
مثلا داخل یک input یک متنی رو نوشتم میخوام بعد از چند ثانیه به تعداد طول اون متنی که نوشتم کلید پاک کردن اتفاق بوفته..
آیا این شدنیه بنویسم؟
به مثال زیر توجه کنید :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>آزمایشی</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<input id="text">
<button id="btn">مشاهده نتیجه</button>
<script>
document.getElementById("btn").onclick = function() {
var mytext = document.getElementById("text").value;
var inttext = mytext.length; // به دست آوردن تعداد کاراکتر هایش
var myint = 0;
while(myint != inttext){ //این حلقه تا زمانی که این دو متغییر نا مساوی باشند کار میکند
++myint;
// عملیات مورد نظر رو میتونید بنویسید به عنوان مثال :
alert(myint)
}
}
</script>
</body>
</html>
سلام مجدد
کد پایین هر ده ثانیه یک بار میاد و عملیات رو انجام میدهد :
حالا میتونید زمانش رو هر مقدار خواستید قرار بدید
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>آزمایشی</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<input id="text">
<script>
function test() {
var mytext =document.getElementById("text").value;
var inttext = mytext.length;
var myint = 0;
while(myint != inttext){
++myint;
// عملیات مورد نظر رو میتونید بنویسید به عنوان مثال :
alert(myint)
}
}
var myVar = setInterval(function () { test() }, 10000);
</script>
</body>
</html>
اگر هم منظورتون این هستش که تا حرفی رو تایپ میکنه همون لحظه پاک شه اون هم روشی داره که اگه اینجوری هست بفرمایید کد اون رو هم خدمتتون بدهم
سلام
شدنی هست شما در یک اینپوت شروع میکنی به تایپ کردن و وقتی از اون اینپوت بیرون اومدی و فوکوس از اون اینپوت گرفته شد میتونید کار پاک کردن متنو بعد چند ثانیه انجام بدین در رویداد blur جی کوئری میتونید کدی بنویسید که شروع کنه به پاک کردن کاراکترهای اینپوت، البته بعد چند ثانیه این کارو بکنه از تابع setTimeout هم میتونید استفاده کنید.
اگر کاراکترهارو دونه دونه با تاخیر زمانی میخواین پاک کنین این هم روشی داره باید کاراکترهارو از اخر دونه دونه از رشته بردارین و رشته کوتاه شده رو در اینپوت قرار بدین و اینکارو تا انتهای رشته انجام بدین.
اگر هم میخواین مقدار اینپوت بعد لحظاتی یکجا حذف یا پاک بشه این کارو هم راحت بایه کد ساده میتونید انجام بدید. فکر کنم این روش جواب سوال شما باشد. درسته؟
اینکه شما بخوای با جاوااسکریپت کلید backspace رو بفشاری شاید این کار شدنی نباشه و لی میشه کدی در جاوا نوشت که عملکرد این کلیدو انجام بده و در بالا هم بهش اشاره کردم یه حلقه به تعداد طول اون رشته میزنی بعد با متدslice دونه دونه از آخر حذف میکنی و رشته جدیدو در باکس قرار میدی
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<input type="text" id="text"/>
</body>
<script>
setInterval(function () {
let value = document.getElementById('text').value;
for (let i = 0; i < value.length; i++) {
document.getElementById('text').value = value.substr(i + 1, value.length - 1);
}
}, 5000); // 5 sec
</script>
</html>
سلام اگر میخواین input پاک بشه که بجای گرفتن طول کلمه و پاک کردنش همون input رو دوباره با مقدار خالی جایگذاری کنین
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟