التركيز على مربع النص في حدث Onchange
-
21-09-2019 - |
سؤال
أحاول الحصول عليها حتى يتم وضع قيمة معينة في مربع نص ، سيبقى التركيز على مربع النص (وسيتم عرض تنبيه في الإنتاج). أحاول جعل هذا العمل في Firefox 3.5.7 دون حظ.
كيف يمكنني صنعه ، عندما يكون مربع النص قيمة معينة في onchange
أنه سيظل مركّزًا/إعادة التركيز على مربع النص؟
مثال مباشر في http://jsbin.com/ipina
<body>
Enter your name: <input type="text" name="fname" id="fname" onchange="
if(this.value=='foo'){
this.select();
this.focus();
}
" />
</body>
أيضًا ، لا أحصل على أي أخطاء أو تحذيرات JavaScript في وحدة تحكم الخطأ على تنفيذ هذا الرمز.
المحلول 2
بالنسبة الى JavaScript onchange مختلف في IE و Firefox كنت بحاجة إلى ضبط التركيز بعد حدوث حدث Onchange ، لذلك كان علي أن ينتهي بي الأمر مثل هذا:
Enter your name: <input type="text" name="fname" id="fname" onblur="
if(this.value=='foo'){
alert('bah');
setTimeout('document.getElementById(\'fname\').focus();document.getElementById(\'fname\').select();',0);
}
" />
وأيضًا اضطررت إلى التقاطه عندما فقد التركيز ، وليس بالضرورة عندما تم تغيير النص ، لذلك اضطررت إلى استخدام Onblur بدلاً من Onchange.
يعيش: http://jsbin.com/ofeva
نصائح أخرى
عندما onchange
يتم إطلاق الحدث ، ويركز المستخدم على مربع النص.
ربما قد ترغب في استخدام blur
حدث لإعادة التركيز على مربع النص إذا كانت القيمة "foo".
إذا كنت بحاجة إلى نتائج فورية ، فيجب عليك استخدامها onkeyup
.
<body>
Enter your name: <input type="text" name="fname" id="fname" onkeyup="
if(this.value=='foo'){
this.select();
this.focus();
}
" />
</body>