Campo de texto regular, el usuario ingresa una cadena. Compruebe si a) hay algo en la entrada, b) que no hay espacios en blanco en la entrada, yc) solo es un número entero, no hay otros caracteres. Luego el botón enviar. Observará que no estoy utilizando el comportamiento html, no hay ningún clic en la entrada, separación estricta de Contenido/Presentación/Comportamiento.javascript focus() no se está enfocando
Mi 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>
Tenga en cuenta también que el archivo JavaScript externo se añade al final de la así todos los elementos se pueden cargar (no preocuparse por onload en este momento).
La JavaScript:
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);
Cuando entro en una entrada incorrecta, la lógica funciona, pero el cursor no se centra de nuevo a la caja de texto, independientemente del navegador que uso.
violín: http://jsfiddle.net/2CNeG/
Gracias, Don
@DonG Parece que también envía el formulario independientemente de si se aprueba o no. – bfavaretto
Sí; sería mejor para él usar type = 'button' --OR-- para devolver false en la función de validación para aquellas rutas donde la validación falla. –
De acuerdo, veo tu punto, lo he cambiado a myTextBox.focus(); y aún no se enfoca en el cuadro de entrada/texto. – DonG