Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Marcos Paulo Cunha Martins

Contar INPUTS preenchidos

Recommended Posts

Boa Noite Amigos,

Minha dificuldade é: Tenho uma tabela feita por DIVS, preciso fazer a contagem de cada input NOME preenchido para que eu possa usar esse resultado em uma expressão final.

Se ela não estiver preenchida não entra na contagem, se estiver entra. Para que no final eu use na expressão var total = (total2 - total1) / nº de inputs NOME preenchidos.

Segue codigos:

Minha tabela tem 10 linhas, todas iguais a esta:

div(class="table-a")
div(class='table-a-row')
div(class='table-h')
label Nome Completo
input(type='text', class='form-control', name='nome_p1', id='nome_p1', placeholder='Nome Completo', onkeyup='rendaPerCapita()')
div(class='table-h')
label Data de Nascimento
input(type='date', class='form-control', name='nasc_p1')
div(class='table-h')
label Grau de Parentesco
input(type='text', class='form-control', name='grau_p1', placeholder='Grau')
div(class='table-h')
label Profissão
input(type='text', class='form-control', name='profissao_p1', placeholder='Profissão')
div(class='table-h')
label Onde Trabalha / Benefício
input(type='text', class='form-control', name='trabalho_p1', placeholder='Onde Trabalha / Benefício')
div(class='table-h')
label Salário(R$)
input(type='text', class='form-control', name='salario_p1', id='salario_p1', placeholder='Apenas números', onkeyup='somaRendaBruta(); somaRendaLiquida()')
div(class='table-a-row')
div(class='table-h')
input(type='text', class='form-control', name='nome_p2', id='nome_p2', placeholder='Nome Completo', onkeyup='rendaPerCapita()')
div(class='table-h')
input(type='date', class='form-control', name='nasc_p2')
div(class='table-h')
input(type='text', class='form-control', name='parente_p2', placeholder='Grau')
div(class='table-h')
input(type='text', class='form-control', name='profissao_p2', placeholder='Profissão')
div(class='table-h')
input(type='text', class='form-control', name='trabalho_p2', placeholder='Onde Trabalha / Benefício')
div(class='table-h')
input(type='text', class='form-control', name='salario_p2', id='salario_p2', placeholder='Apenas números', onkeyup='somaRendaBruta(); somaRendaLiquida()')
Segue código javaScript:
function rendaPerCapita(){
var total1 = getMoney('alimentacao')+getMoney('agua')+getMoney('luz')+getMoney('iptu');
var total2 = getMoney('salario_p1') + getMoney('salario_p2') + getMoney('salario_p3') + getMoney('salario_p4') + getMoney('salario_p5') + getMoney('salario_p6') + getMoney('salario_p7') + getMoney('salario_p8') + getMoney('salario_p9') + getMoney('salario_p10');
var total3 = nº de inputs NOME preenchidos;
var total = (total2 - total1) / total3;
id('renda_percapita').value = 'R$ ' + total / 100;
}

A contagem pode ser realizada somente pelo NOME.

Vlw,

Compartilhar este post


Link para o post
Compartilhar em outros sites

exemplo:

<input type="text" name="nome[]">
<input type="text" name="nome[]" value="1">
<input type="text" name="nome[]">
<input type="text" name="nome[]">
<input type="text" name="nome[]">
<input type="text" name="nome[]" value="2">
<input type="text" name="nome[]">
<input type="text" name="nome[]">
<input type="text" name="nome[]" value="3">
<input type="text" name="nome[]">


<script>
var $inputs = document.querySelectorAll('input[name="nome[]"]');
$inputs = [].slice.call($inputs);

var withValue = $inputs.filter(function(input) {
    return input.value;
})

alert(withValue.length);
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado meu amigo, deu super certo.

Eu implementei como função e fiz a chamada pelo botão submit.

button(type='submit', class='btn btn-success', onclick='somaRendaPercapita()') Calcular

function somaRendaPercapita(){
function contaCampo() {
var $inputs = document.querySelectorAll('input[id="nome[]"]');
$inputs = [].slice.call($inputs);
var withValue = $inputs.filter(function(input) {
return input.value;
});
return withValue.length;
}
var total1 = getMoney('alimentacao')+getMoney('agua')+getMoney('luz')+getMoney('iptu')+getMoney('telefone_conta')+getMoney('mensal_escolar')+getMoney('transporte')+getMoney('ass_medica')+getMoney('medicamentos');
var total2 = getMoney('salario_p1')+getMoney('salario_p2')+getMoney('salario_p3')+getMoney('salario_p4')+getMoney('salario_p5')+getMoney('salario_p6')+getMoney('salario_p7')+getMoney('salario_p8')+getMoney('salario_p9')+getMoney('salario_p10');
var total = (total2 - total1) / contaCampo();
id('renda_percapita').value = 'R$ ' + total / 100;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.