我有一个这样的表格:
<form name="mine">
<input type=text name=one>
<input type=text name=two>
<input type=text name=three>
</form>
当用户在'one'中键入值时,我有时会想要跳过字段'two',具体取决于他输入的内容。例如,如果用户键入“123”并使用Tab移动到下一个字段,我想跳过它并转到第三个字段。
我尝试使用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>
但这些都不起作用。看起来浏览器不允许您在焦点变化时弄乱焦点。
BTW,这一切都是在Linux上用Firefox试过的。答案 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
并发送到三个。