سؤال

لدي نموذج مثل هذا:

<form name="mine">
    <input type=text name=one>
    <input type=text name=two>
    <input type=text name=three>
</form>

عندما يكتب المستخدم قيمة في "واحد"، أرغب أحيانًا في تخطي الحقل "اثنين"، اعتمادًا على ما كتبه.على سبيل المثال، إذا كتب المستخدم "123" واستخدم علامة التبويب للانتقال إلى الحقل التالي، فأنا أرغب في تخطيه والانتقال إلى الحقل الثالث.

حاولت استخدامها OnBlur و OnEnter, ، بدون نجاح.

حاول 1:

<form name="mine">
    <input type=text name=one onBlur="if (document.mine.one.value='123') document.three.focus();>
    <input type=text name=two>
    <input type=text name=three>
</form>

حاول 2:

<form name="mine">
    <input type=text name=one>
    <input type=text name=two onEnter="if (document.mine.one.value='123') document.three.focus();>
    <input type=text name=three>
</form>

ولكن لا شيء من هذه الأعمال.يبدو أن المتصفح لا يسمح لك بالتلاعب بالتركيز أثناء تغيير التركيز.

راجع للشغل، كل هذا تم تجربته مع Firefox على Linux.

هل كانت مفيدة؟

المحلول

حاول إرفاق سمة tabindex بالعناصر الخاصة بك ثم قم بتغييرها برمجيًا (في جافا سكريبت):

<INPUT tabindex="3" type="submit" name="mySubmit">

نصائح أخرى

يمكنك استخدام مركز الحدث في الحقل الثاني، والذي سيتم استدعاؤه عندما يتم التركيز عليه.عند هذه النقطة، يجب تحديث قيمة الحقل 1 ويمكنك إجراء الفحص بعد ذلك.

إذا استخدمت الطريقة التي تصفها، ونجحت، فسيتغير التركيز أيضًا عندما ينقر المستخدم على الحقل، بدلاً من النقر عليه.أستطيع أن أضمن لك أن هذا سيؤدي إلى إحباط المستخدم.(لماذا لا يعمل بالضبط هو خارج عن ارادتي.)

بدلاً من ذلك، كما ذكرنا من قبل، قم بتغيير فهرس الحقول المناسبة بمجرد تغيير محتوى الحقل الأول.

<form name="mine">
    <input type="text" name="one" onkeypress="if (mine.one.value == '123') mine.three.focus();" />
    <input type="text" name="two">
    <input type="text" name="three">
</form>

يحاول onkeypress بدلاً من onblur.وأيضا على onfocus الحقل الثاني هو المكان الذي يجب أن ترسل فيه إلى الثلاثة.أفترض أنك لا تريدهم أن يكتبوا اثنين إذا كان واحد هو 123 لذلك يمكنك فقط التحقق من ذلك على اثنين onfocus وأرسل إلى الثلاثة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top