Поле input
в форме:
<td align=right>Cod.Postal:</td><td align=left><input type="text" name="codigo" id="idcodigo" maxlength="5"></td>
Вы должны уметь писать только цифры (0-9).
window.addEventListener("load", function() {
miformulario.codigo.addEventListener("keypress", function(){
return soloNumeros(event);
}, false);
});
//Solo permite introducir números.
function soloNumeros(e){
var key = window.event ? e.which : e.keyCode;
if (key < 48 || key > 57) {
//Usando la definición del DOM level 2, "return" NO funciona.
e.preventDefault();
}
}
Функция ValidarCP:
//Validar el CP.
function validarCP(){
//Eliminamos la clase error asignada al elemento CP.
document.getElementById("idcodigo").className="";
var valor = document.getElementById("idcodigo").value;
var patron = /^\d{5}$/;
if (patron.test(document.getElementById("idcodigo").value) && (!isNaN(valor))){
document.getElementById("idcodigo").className="correcto";
return true;
}else{
//Situamos el foco en el campo idcodigo y le asignamos la clase error.
alert("El código debe tener al menos 5 digitos.\n");
document.getElementById("idcodigo").focus();
document.getElementById("idcodigo").className="error";
return false;
}
}
Как бы вы назначили эту функцию ValidarCP полю «код»? С событием onblur? Я бы хотел, чтобы при потере фокуса он проверял, есть ли 5 цифр, если есть, то ничего не происходило, если не было 5 цифр, показывал сообщение (alert()) и делал фон поля красным .
стили.css
.error{
background-color: red;
}
Что происходит, так это то, что вы должны проверить ввод в JavaScript, даже если вы вернете false, он не знает, что делать, вам нужно добавить,
e.preventDefault()
чтобы теперь он не позволял писать символы, которые не имеют тип числоЯ взял ваш код, удалил кое-что лишнее и добавил проверку
preventDefault()
Ваше здоровье
Использование определения уровня DOM 2 не
return
работает так, как вы ожидаете. Вы должны использоватьEvent.preventDefault()
вместо этого.Наконец, условие должно быть противоположным тому, которое вы поставили:
Вы можете сделать это только с помощью html, создайте свой ввод типа номера. Что-то вроде этого:
Вот что-то проще. Приветствие