2012-04-06 4 views
6

일반 텍스트 필드에서 사용자가 문자열을 입력합니다. a) 입력에 무언가가 있는지, b) 입력에 공백이 없는지, 그리고 c) 정수인지, 다른 문자가 없는지 여부를 테스트합니다. 제출 버튼. HTML 동작을 사용하지 않고 입력/수정/동작 구분이 엄격한 onclick이 없습니다.javascript focus()가 초점을 맞추지 않았습니다.

내 HTML : 너무 모든 요소에 추가됩니다 자바 스크립트 파일을 외부가 (온로드 지금 걱정되지 않음)로드 할 수도

<form name="basicText" id="basicText" action=""> 
<p>Enter any ol' integer: 
<input type="text" id="inputBox" name="inputBox" size="14"/>  
<input value = "Next...?" type="submit" id="mySubmitBtn" name="mySubmitBtn"/> 
</p> 
</form> 
<script src="js/w1bscript.js" type="text/javascript"></script> 

참고.

자바 스크립트가 :

var myButton1 = document.getElementById("mySubmitBtn"); 
var myForm1 = document.getElementById("basicText"); 
var myTextBox = myForm1.inputBox; 

function submitPress() { 
if(myTextBox.value.length == 0) { 
    alert("You didn't enter anything! Once more time, with feeling...") 
    basicText.focus(); 
    basicText.select(); 
} else if(/\s/.test(myTextBox.value)) { 
    alert("Eh... No spaces. Just integers. Try again..."); 
    basicText.focus(); 
    basicText.select(); 
    } else if (isNaN(myTextBox.value)==true) { 
    alert("Eh... Gonna need you to enter ONLY digits this time. kthnx."); 
    basicText.focus(); 
    basicText.select(); 
} else { 
    // The textbox isn't empty, and there's no spaces. Good. 
    alert("you've passed the test!") 
    } 
} 
myButton1.addEventListener('click', submitPress, false); 

내가 잘못된 입력을 입력 논리가 작동하지만, 커서는 상관없이 내가 사용하는 브라우저, 다시 텍스트 상자에 집중하지 않습니다.

바이올린 :

http://jsfiddle.net/2CNeG/ 감사합니다, 돈

답변

4
당신이 당신의 폼 요소에 초점을 맞추고있다처럼 내게 보이는

; 대신 텍스트 상자에 초점을 맞춰야합니다.

또는 myTextBox.focus()을 코드에 넣어야합니다.

+0

@DonG 유효성 검사 여부와 상관없이 양식을 제출 한 것 같습니다. – bfavaretto

+0

예; 유효성 검사가 실패한 경로에 대해 validation 함수에서 false를 반환하려면 type = 'button'- OR--을 사용하는 것이 좋습니다. –

+0

좋아요, 요점을보고, 그것을 myTextBox.focus()로 변경했습니다. 입력/텍스트 상자에는 여전히 초점이 없습니다. – DonG

6

알림 상자를 주석으로 작성하면 포커스가 작동하는 것을 볼 수 있습니다. 그러나 동일한 해결책이 있습니다. 이거 해봐. 잘될 것 같아.

setTimeout(function() { 
     document.getElementById('inputBox').focus(); 
    }, 0); 
+0

예, 초점이 초 동안 나왔다가 사라지는 것을 보았습니다 ... – DonG

관련 문제