문제

다음과 같은 형식이 있습니다.

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

사용자가 '1'에 값을 입력할 때 입력한 내용에 따라 '2' 필드를 건너뛰고 싶을 때가 있습니다.예를 들어, 사용자가 '123'을 입력하고 Tab을 사용하여 다음 필드로 이동하는 경우 이를 건너뛰고 필드 3으로 이동하고 싶습니다.

사용해 보았습니다 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>

하지만 이들 중 어느 것도 작동하지 않습니다.브라우저에서는 포커스가 변경되는 동안 포커스를 조작하는 것을 허용하지 않는 것 같습니다.

그런데 이 모든 것은 Linux의 Firefox에서 시도되었습니다.

도움이 되었습니까?

해결책

요소에 tabindex 속성을 첨부한 다음 프로그래밍 방식으로 시도해 보십시오(javaScript에서 변경).

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

다른 팁

당신은 집중하다 포커스를 받을 때 호출되는 필드 2의 이벤트입니다.이 시점에서 필드 1의 값이 업데이트되어야 하며 그때 확인을 수행할 수 있습니다.

설명하는 방법을 사용하고 제대로 작동했다면 사용자가 필드를 탭하는 대신 필드를 클릭할 때 포커스도 변경됩니다.이로 인해 사용자가 실망하게 될 것이라고 장담할 수 있습니다.(정확히 작동하지 않는 이유는 나에게 달려 있지 않습니다.)

대신, 앞서 말했듯이 필드 1의 내용이 변경되는 즉시 해당 필드의 tabindex를 변경하십시오.

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

노력하다 onkeypress 대신에 onblur.또한, onfocus 필드 2는 3으로 보내야 하는 곳입니다.나는 하나가 123이면 그들이 2를 입력하는 것을 원하지 않는다고 가정하고 있으므로 2에서 확인할 수 있습니다. onfocus 그리고 3명에게 보내세요.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top