Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, tudo bem?
Estou com um problema em uma função de validação, acontece o seguinte:
Eu tenho 15 inputs e dentro delas não pode ser colocados alguns números que tenho salvos em um array, quando um desses números é colocado o botão do formulário fica desabilitado, isto funciona perfeitamente, porém caso o usuário simplesmente coloque um número permitido (número que não consta no array de números proibidos) na próxima input o botão volta a funcionar.
Isso não pode acontecer, ele precisa ficar desabilitado até o usuário modificar o número proibido que foi colocado na input.
você sabe como posso fazer??
A função é esta:
//Funções de validação
var $numbers = document.querySelectorAll('input[name="numbers[]"]');
var $form = document.getElementById('form-numbers');
$numbers = [].slice.call($numbers);
var NOT_ALLOWED_NUMBERS = ['5','6','7','12','13','14','19','20','21'];
$numbers.forEach(function($number){
$number.addEventListener('keyup', _validate);
});
function _validate() {
var isNotAllowed = NOT_ALLOWED_NUMBERS.indexOf(this.value) !== -1;
var userNumbers = $numbers.map(function(n) {
return n.value;
});
console.log('userNumbers', userNumbers);
if(isNotAllowed) {
this.classList.add('error');
document.getElementById("gerar").disabled=true;
} else {
this.classList.remove('error');
document.getElementById("gerar").disabled=false;
}
}
O formulário é este:
<form id="form-numbers" action="">
<table class="table table-bordered">
<tr>
<td><input type="text" class="form-control" name="numbers[]" id="a"></td>
<td><input type="text" class="form-control" name="numbers[]" id="b"></td>
<td><input type="text" class="form-control" name="numbers[]" id="c"></td>
<td><input type="text" class="form-control" name="numbers[]" id="d"></td>
<td><input type="text" class="form-control" name="numbers[]" id="e"></td>
<td><input type="text" class="form-control" name="numbers[]" id="f"></td>
<td><input type="text" class="form-control" name="numbers[]" id="g"></td>
<td><input type="text" class="form-control" name="numbers[]" id="h"></td>
<td><input type="text" class="form-control" name="numbers[]" id="i"></td>
<td><input type="text" class="form-control" name="numbers[]" id="j"></td>
<td><input type="text" class="form-control" name="numbers[]" id="k"></td>
<td><input type="text" class="form-control" name="numbers[]" id="l"></td>
<td><input type="text" class="form-control" name="numbers[]" id="m"></td>
<td><input type="text" class="form-control" name="numbers[]" id="n"></td>
</tr>
</table>
</div>
<button class="btn btn-success" onclick="gerarCombinacoes1();" id="gerar">GERAR COMBINAÇÕES</button>
<button class="btn btn-danger" onclick="limparCombinacoes1();">LIMPAR</button>
<button class="btn btn-warning" onclick="imprimir();">IMPRIMIR</button>
<button class="btn btn-default" onclick="salvar();">SALVAR</button>
<br><br>
</form>
Você sabe como fazer?
Obrigado :D
Carregando comentários...