سؤال

أحاول الحصول عليها حتى يتم وضع قيمة معينة في مربع نص ، سيبقى التركيز على مربع النص (وسيتم عرض تنبيه في الإنتاج). أحاول جعل هذا العمل في 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>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top