1

私はこのようなフォームを持っています:

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

ユーザーが「1」に値を入力すると、入力内容によっては「2」フィールドをスキップしたい場合があります。たとえば、ユーザーが「123」と入力し、Tab を使用して次のフィールドに移動する場合、それをスキップしてフィールド 3 に移動したいと考えています。

OnBlurandを使用しようとしましたが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>

しかし、これらの作品のどれも。ブラウザは、フォーカスが変化している間、フォーカスをいじることを許可していないようです。

ところで、これはすべて Linux 上の Firefox で試しました。

4

5 に答える 5

3

tabindex 属性を要素にアタッチしてから、プログラムで (javaScript で変更します):

<INPUT tabindex="3" type="submit" name="mySubmit">
于 2008-09-17T02:32:29.397 に答える
1

フィールド 2 でonfocusイベントを使用できます。これは、フォーカスを受け取ったときに呼び出されます。その時点で、フィールド 1 の値が更新され、チェックを実行できます。

于 2008-09-17T02:33:27.850 に答える
1

説明した方法を使用して機能した場合、ユーザーがフィールドにタブ移動するのではなく、フィールドをクリックするとフォーカスも変更されます。これにより、ユーザーがイライラすることは間違いありません。(正確に機能しない理由は私を超えています。)

代わりに、前に述べたように、フィールド 1 の内容が変更されたらすぐに、適切なフィールドの tabindex を変更します。

于 2008-09-17T02:35:24.960 に答える
0
<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>
于 2008-09-17T02:37:08.653 に答える
0

onkeypressの代わりに試してくださいonblur。また、onfocusフィールド 2 では、3 に送信する必要があります。1 が 123 の場合に 2 を入力したくないので、2 をチェックしてonfocusから 3 に送信するだけでよいと思います。

于 2008-09-17T02:37:19.590 に答える