احسان جلیلی
4 سال پیش توسط احسان جلیلی مطرح شد
8 پاسخ

یک سوال ابتدایی درمورد java script

با عرض سلام و خسته نباشید خدمت اساتید
برام در مورد key codes در جاوااسکریپت سوال پیش اومد که آیا میشه همانطور که یرای یک دکمه Event اختصاص میدیم شرط هم بزاریم که اگر یک اتفاق افتاد n بار فلان دکمه رو تکرار کن؟
مثلا داخل یک input یک متنی رو نوشتم میخوام بعد از چند ثانیه به تعداد طول اون متنی که نوشتم کلید پاک کردن اتفاق بوفته..
آیا این شدنیه بنویسم؟


ثبت پرسش جدید
علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 4 سال پیش مطرح شد
0

به مثال زیر توجه کنید :

<!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>

احسان جلیلی
تخصص : web dev
@ehsanjalili 4 سال پیش مطرح شد
0

شما متوجه منظورم نشدین
متن به صورت لایو میخوام پاک شه
@alirezakefayati1386.1400


علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 4 سال پیش آپدیت شد
1

سلام مجدد
کد پایین هر ده ثانیه یک بار میاد و عملیات رو انجام میدهد :
حالا میتونید زمانش رو هر مقدار خواستید قرار بدید


<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>

اگر هم منظورتون این هستش که تا حرفی رو تایپ میکنه همون لحظه پاک شه اون هم روشی داره که اگه اینجوری هست بفرمایید کد اون رو هم خدمتتون بدهم


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش مطرح شد
0

سلام
شدنی هست شما در یک اینپوت شروع میکنی به تایپ کردن و وقتی از اون اینپوت بیرون اومدی و فوکوس از اون اینپوت گرفته شد میتونید کار پاک کردن متنو بعد چند ثانیه انجام بدین در رویداد blur جی کوئری میتونید کدی بنویسید که شروع کنه به پاک کردن کاراکترهای اینپوت، البته بعد چند ثانیه این کارو بکنه از تابع setTimeout هم میتونید استفاده کنید.
اگر کاراکترهارو دونه دونه با تاخیر زمانی میخواین پاک کنین این هم روشی داره باید کاراکترهارو از اخر دونه دونه از رشته بردارین و رشته کوتاه شده رو در اینپوت قرار بدین و اینکارو تا انتهای رشته انجام بدین.
اگر هم میخواین مقدار اینپوت بعد لحظاتی یکجا حذف یا پاک بشه این کارو هم راحت بایه کد ساده میتونید انجام بدید. فکر کنم این روش جواب سوال شما باشد. درسته؟


احسان جلیلی
تخصص : web dev
@ehsanjalili 4 سال پیش مطرح شد
0

سلام
من با js خالی میخوام اینکارو انجام بدم
هر کدی میزنم نمیشه
@hosseinshirinegad98


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش مطرح شد
0

اینکه شما بخوای با جاوااسکریپت کلید backspace رو بفشاری شاید این کار شدنی نباشه و لی میشه کدی در جاوا نوشت که عملکرد این کلیدو انجام بده و در بالا هم بهش اشاره کردم یه حلقه به تعداد طول اون رشته میزنی بعد با متدslice دونه دونه از آخر حذف میکنی و رشته جدیدو در باکس قرار میدی


Ali Mirzabagher
@samb2 4 سال پیش مطرح شد
0
<!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>

3aeed
تخصص : برنامه نویس فرانت-اند
@3aeed.pro 4 سال پیش مطرح شد
0

سلام اگر میخواین input پاک بشه که بجای گرفتن طول کلمه و پاک کردنش همون input رو دوباره با مقدار خالی جایگذاری کنین


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام