7
I’m having trouble validating a form with pure javascript, when it arrives in the field of the type "checkbox"
always returns false, even with "checked = true"
.
Why is this happening? How can I resolve?
function val(){
var inputs = document.form.getElementsByTagName('input');
var label = document.form.getElementsByTagName('label');
for(i=0;i<inputs.length;i++){
var tipo = inputs[i].type;
var nome = inputs[i].getAttribute('name');
var elemento = inputs[i].getAttribute('id');
if(tipo == 'text' && inputs[i].value.length < 5){
label[i].childNodes.item(1).innerHTML = '*';
document.getElementById(elemento).focus();
return false;
}else if(tipo == 'checkbox' && document.form.nome.checked !== true){
label[i].childNodes.item(1).innerHTML = '*';
document.getElementById(elemento).focus();
return false;
}else if(tipo == 'radio' && document.form.nome.checked !== true){
label[i].childNodes.item(1).innerHTML = '*';
document.getElementById(elemento).focus();
return false;
}else{
label[i].childNodes.item(1).innerHTML = '';
}
}
alert('enviado');
}
Exactly. It worked here.
– Tiago César Oliveira
@That’s what you lost, but I always have to select the two checkboxes, otherwise there will always be an error, only there will be a checkbox that the user will leave empty. That’s why I tried to verify the name... Is there any solution to this?
– Odair
Remove the
return false
and use a boolean variable to control whether the form was validated at the end before sending. To do sofalse
in each failed validation. I included a reply my below with the full edited source of the function.– Tiago César Oliveira