일반 텍스트 필드에서 사용자가 문자열을 입력합니다. 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/ 감사합니다, 돈
@DonG 유효성 검사 여부와 상관없이 양식을 제출 한 것 같습니다. – bfavaretto
예; 유효성 검사가 실패한 경로에 대해 validation 함수에서 false를 반환하려면 type = 'button'- OR--을 사용하는 것이 좋습니다. –
좋아요, 요점을보고, 그것을 myTextBox.focus()로 변경했습니다. 입력/텍스트 상자에는 여전히 초점이 없습니다. – DonG