2008-09-17 3 views
1

는이 같은 양식을 가지고 :javascript를 사용하여 필드를 건너 뛰는 방법은 무엇입니까?

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

사용자 유형 '하나'의 값은, 가끔 자신이 입력 한 내용에 따라 필드 '이'를 생략하고 싶다. 예를 들어 사용자가 '123'을 입력하고 Tab 키를 사용하여 다음 필드로 이동하면 건너 뛰고 필드 3으로 이동합니다.

나는 OnBlurOnEnter을 사용하려했지만 성공하지 못했습니다. 이 시도

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

:

1을 시도하지이 작품의

<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에서 시도되었습니다.

답변

3

봅니다 (자바 스크립트 변경) programmaticaly 다음 요소의 tabindex 속성을 첨부합니다 :

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

당신은 포커스를받을 때 호출됩니다 필드 두에 onfocus 이벤트를 사용할 수 있습니다. 이 시점에서 필드 1의 값을 업데이트해야합니다. 그런 다음 검사를 수행 할 수 있습니다.

1

설명하는 방법을 사용하고 효과가있는 경우 사용자가 탭을 누르지 않고 필드를 클릭하면 포커스가 변경됩니다. 나는 이것이 좌절 된 사용자가 될 것이라고 당신에게 보증 할 수 있습니다. (정확히 작동하지 않는 이유는 나를 넘어서는 것입니다.)

대신, 앞에서 설명한 것처럼 필드 1의 내용이 변경되는 즉시 해당 필드의 tabindex를 변경하십시오.

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> 
0

onblur 대신 onkeypress을 시도하십시오. 또한, 필드 2의 onfocus에는 3으로 보내야하는 곳이 있습니다. 두 사람이 123 인 경우 두 사람을 입력하지 않으려 고합니다. 따라서 두 사람의 사람을 확인하고 onfocus을 3 명에게 보낼 수 있습니다.

관련 문제