با عرض سلام و خسته نباشید خدمت اساتید
برام در مورد 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>شما متوجه منظورم نشدین
متن به صورت لایو میخوام پاک شه
@alirezakefayati1386.1400
شاید پاسخ شما همینجا باشد
سلام مجدد
کد پایین هر ده ثانیه یک بار میاد و عملیات رو انجام میدهد :
حالا میتونید زمانش رو هر مقدار خواستید قرار بدید
<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 هم میتونید استفاده کنید.
اگر کاراکترهارو دونه دونه با تاخیر زمانی میخواین پاک کنین این هم روشی داره باید کاراکترهارو از اخر دونه دونه از رشته بردارین و رشته کوتاه شده رو در اینپوت قرار بدین و اینکارو تا انتهای رشته انجام بدین.
اگر هم میخواین مقدار اینپوت بعد لحظاتی یکجا حذف یا پاک بشه این کارو هم راحت بایه کد ساده میتونید انجام بدید. فکر کنم این روش جواب سوال شما باشد. درسته؟
سلام
من با js خالی میخوام اینکارو انجام بدم
هر کدی میزنم نمیشه
@hosseinshirinegad98
<!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>