كيف اخصص علامة ايقونة معينة لحذف النص المدخل في صندوق البحث

🌹🖤

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

في الحقيقة يمكنك إختصار الكثير من الجهد بمجرد إستعمال حقل الإدخال من النوع search كالتالي :

<input type="search" />

سيقوم هذا بتوفير حقل نصي مرفقا بعلامة الحذف جانب الحقل لمحو محتوياته أو إعادة إدخال نص جديد .

سيكون كل هذا بدلا عن :

  • إنشاء هيكلية كالتالي :
<input type="text" id="text_input"/>
<i class="fa fa-close"></i>
  • إضافة بعض التنسيقات لجعل الأيقونة تتموضع في أحد جوانب الحقل .
  • عند الضغط على الأيقونة يتم تحديد الحقل المستهدف و حذف محتوياته :
$('i.fa-close').on('click' , function(){
    $('#text_input').val('');
}); 

شكراً لمساعدتك .

هل يمكن تصميم علامة الحذف التي في النوع search ؟

هل يمكن تصميم علامة الحذف التي في النوع search ؟

نعم يمكنك ذلك , لكن الأمر غير منطقي كونه يمكن عمل ذات الفكرة بشيفرة أقل . هل يمكن معرفة الهدف وراء ذلك ؟

ولكن ماذا تقصد ب(شيفرة اقل) هل يوجد ما هو اقل وابسط من استخدام بعض من خصائص الcss

صحيح أنه لا بأس بشيفرة مخصصة و قد لا تتطلب الكثير من HTML , CSS و جافاسكربت , و لكن المقصود بأقل هو المقارن بإستعمال الحقل من نوع search .

هل يمكن معرفة الهدف وراء ذلك ؟

اذا قمت باستخدام type="text"فعندها يجب احضار صورة ما لاستخدامها

بينما الtype="search" الايقونة موجودة فقط علي ان اصممها 🌹

يمكن تخصيص الشيفرة حتى تتلائم وفق حاجتك و مطلوبك .

و لنقل مثلا أننا نريد تغيير الأيقونة من علامة X إلى أيقونة سلة مهملات للحذف , لنقم بتعريف الهيكلية التالية :

<div class="input-container">
    <input type="text" id="text_input"/>
    <i class="fa fa-trash"></i>
</div>

ثم لنقم بضبط تموضع الأيقونة في مكان مناسب بإضافة بعض التنسيقات :

.input-container{
   position: relative;
}
input#text_input {
   width: 100%;
   height: 100%;
}
i{
   position: absolute;
   top: 0;
   left: 4px; 
}

و أخيرا إضافة التفاعلية المطلوبة :

$('i.fa-trash').on('click' , function(){
    $('#text_input').val('');
}); 

سيمكنك بهذا عمل الكثير من الأفكار , من مثل تخصيص الأيقونة أو تغييرها إلى صورة أو غيرها ..

يمكنك أن تستعمل عنصر input من نوع reset لإفراغ محتوى كل عناصر input في عنصر form، كالتالي:

<form>
    <input type="text">
    <input type="reset" value="Clear"/>
</form>

بهذا الشكل يمكن تفريغ محتوى كل عناصر input في النموذج.

ويمكن إستخدام JavaScript للقيام بنفس الأمر عند الضغط على أي زر، كالتالي:

<form id="myForm">
    <input type="text">
    <p id="clear">Clear</p>
</form>
<script>
clearBtn = document.getElementById('clear')
clearBtn.addEventListener('click', function () {
   document.getElementById('myForm').reset()
})
</script>

بهذا الشكل عند الضغط على العنصر p سوف يتم تتفريغ كامل النموذج، أو يمكنك أن تقوم بتفريغ عنصر input معين كالتالي:

<form id="myForm">
    <input type="text">
    <input type="text" id="clearMe">
    <p id="clear">Clear</p>
</form>


<script>
clearBtn = document.getElementById('clear')
myinput = document.getElementById('clearMe')
clearBtn.addEventListener('click', function () {
   myinput.value = ""
})
</script>

بهذا الشكل سوف يتم تفريغ عنصر input معين.

شكراً صديقي لقد استفدت

ولكن لماذا اضفت حقلي ادخال اثنين في المثال الاخير ؟

ام انه مجرد سهو 😁 🌹🖤

لتوضيح أن عنصر الإدخال #clearMe هو فقط من سيتم تفريغه، بينما عنصر input الأول سيظل محتفظ بمحتوياته بدون مشكلة.