1

我有这样的表格:

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

当用户在“一”中输入值时,我有时想跳过“二”字段,具体取决于他输入的内容。例如,如果用户键入“123”并使用 Tab 移动到下一个字段,我想跳过它并转到第三个字段。

我尝试使用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

如果您使用了您描述的方法,并且它们有效,那么当用户单击该字段时,焦点也会发生变化,而不是使用 Tab 键。我可以向您保证,这会导致用户感到沮丧。(为什么它不起作用超出了我的范围。)

相反,如前所述,只要字段一的内容发生变化,就立即更改相应字段的 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场是你应该发送到第三场的地方。我假设如果一个是 123,你不希望他们输入两个,所以你可以检查两个onfocus并发送到三个。

于 2008-09-17T02:37:19.590 回答