如何使用javascript跳过字段?

时间:2008-09-17 02:27:20

标签: javascript firefox focus skip

我有一个这样的表格:

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

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

我尝试使用OnBlurOnEnter,但没有成功。

尝试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>

但这些都不起作用。看起来浏览器不允许您在焦点变化时弄乱焦点。

BTW,这一切都是在Linux上用Firefox试过的。

5 个答案:

答案 0 :(得分:3)

尝试将tabindex属性附加到元素,然后以编程方式(在javaScript中更改它):

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

答案 1 :(得分:1)

你可以在第二场使用onfocus事件,当它获得焦点时会被调用。此时,应更新字段1的值,然后您可以执行检查。

答案 2 :(得分:1)

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

相反,如前所述,只要字段1的内容发生变化,就更改相应字段的tabindex。

答案 3 :(得分: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>

答案 4 :(得分:0)

尝试使用onkeypress代替onblur。此外,在字段2的onfocus上,您应该发送到三个。我假设你不希望他们输入两个,如果一个是123,所以你可以检查两个onfocus并发送到三个。