Ir para conteúdo
Fórum Script Brasil
  • 0

Distribuido valores Radio Button


RICK OURO

Pergunta

Olá galera, beleza?

Sou iniciante em javascript e me deparei com um baita problema, já faz faz 1 mese e não consegui resolver o problema.

ex: na primeira linha o valor 7 sera distribuido para a linha 2 e 3 e a linha 1 fica 0 (zero), isso quando clicar no radio (n/a)

quando clicar no radio (sim) teria que voltar o valor inicial.

quando clicar no radio (não) tem que subtrair o valor inicial do total abaixo.

Se alguém quiser fazer o código e vender, dependendo do valor eu compro.

grato

<HTML>   
<HEAD>   
<TITLE> Redistribuição de Valores </TITLE>   


<script LANGUAGE="JavaScript">   

var ini = false;

function calcula(item,orig,dest1,dest2){
var total = 0;   
var elem = document.getElementById('FrmSistema').elements;



    if (item == 'A') {

                alert(elem.valor00.id);
        if (!ini){        

        document.getElementById(orig.substring(0,7)).value = 0;
        
        document.getElementById(dest1.substring(0,7)).value = 
        parseInt(document.getElementById(dest1.substring(0,7)).value) + 
        parseInt(dest1.substring(8));

        document.getElementById(dest2.substring(0,7)).value = 
        parseInt(document.getElementById(dest2.substring(0,7)).value) + 
        parseInt(dest2.substring(8));

        ini = true;
        }

    }


    if (item == 'S') {        
        
        if (ini){
        
        document.getElementById(orig.substring(0,7)).value = 
        parseInt(orig.substring(8));

    
        document.getElementById(dest1.substring(0,7)).value = 
        parseInt(document.getElementById(dest1.substring(0,7)).value) - 
        parseInt(dest1.substring(8));

        document.getElementById(dest2.substring(0,7)).value = 
        parseInt(document.getElementById(dest2.substring(0,7)).value) - 
        parseInt(dest2.substring(8));

        ini = false;
        }

    }
    

    if (item == 'N') {

        if (ini){
        
        document.getElementById(orig.substring(0,7)).value = 
        parseInt(orig.substring(8));

    
        document.getElementById(dest1.substring(0,7)).value = 
        parseInt(document.getElementById(dest1.substring(0,7)).value) - 
        parseInt(dest1.substring(8));

        document.getElementById(dest2.substring(0,7)).value = 
        parseInt(document.getElementById(dest2.substring(0,7)).value) - 
        parseInt(dest2.substring(8));

        ini = false;

        }

    }



   /*CONTA A QUANTIDADE DE RADIO */
for (var i = 0; i < elem.length; i++)
{
    if (elem[i].type == 'radio')
    {        
        var qtd_elem = parseInt(elem.length/3);
    }
}


   /*CALCULA */
    for (var j = 0; j < qtd_elem; j++ )
    {
        var D = 2;
        num = "00" + j;    
        document.getElementById('lbValue_'+num.slice(-D)).innerHTML = document.getElementById('valor'+num.slice(-D)).value;
        
        if (document.getElementById('valor'+num.slice(-D)).checked == true)
        {
            total += parseInt(document.getElementById('valor'+num.slice(-D)).value);
        }

        
    }

    /*MOSTRA O TOTAL */
    document.FrmSistema.total.value = total;
}


</SCRIPT>



<script LANGUAGE="JavaScript">   
/*FUNÇÃO SOMA */
function somaTotal()
{
var elem = document.getElementById('FrmSistema').elements;
var qtd_elem = parseInt(elem.length/3);

    for (var j = 0; j < qtd_elem; j++ )
    {
        var D = 2;
        num = "00" + j;            
        document.getElementById('lbValue_'+num.slice(-D)).innerHTML = document.getElementById('valor'+num.slice(-D)).value;
    }
}
</SCRIPT>



</HEAD>     
<BODY onload="somaTotal()">   

<div id="lblValues"></div>


<FORM METHOD="get" ACTION="" name="FrmSistema" id="FrmSistema" >

<TABLE>
<TR>
    <TD>valor</TD>
    <TD>sim</TD>
    <TD>não</TD>
    <TD>n/a</TD>
</TR>


<TR>
    <TD bgcolor='#FF9900'><div id="lbValue_00"></TD>
    <TD><input id="1" type="radio" name="valor00" value="7" onClick="calcula('S','valor00-7','valor01-4','valor02-3')" checked></TD>
    <TD><input id="2" type="radio" name="valor00" value="7" onClick="calcula('N','valor00-7','valor01-4','valor02-3')"></TD>
    <TD><input id="3" type="radio" name="valor00" value="7" onClick="calcula('A','valor00-7','valor01-4','valor02-3')"></TD>
</TR>

<TR>
    <TD bgcolor='#FFFF66'><div id="lbValue_01"></TD>
    <TD><input id="4" type="radio" name="valor01" value="6" onClick="calcula()" checked></TD>
    <TD><input id="5" type="radio" name="valor01" value="6" onClick="calcula()"></TD>
    <TD><input id="6" type="radio" name="valor01" value="6" onClick="calcula()"></TD>
</TR>
<TR>
    <TD bgcolor='#FFFF66'><div id="lbValue_02"></TD>
    <TD><input id="7" type="radio" name="valor02" value="3" onClick="calcula()" checked></TD>
    <TD><input id="8" type="radio" name="valor02" value="3" onClick="calcula()"></TD>
    <TD><input id="9" type="radio" name="valor02" value="3" onClick="calcula()"></TD>
</TR>
<TR>
    <TD bgcolor='#0099FF'><div id="lbValue_03"></TD>
    <TD><input id="10" type="radio" name="valor03" value="3" onClick="calcula('S','valor03-3','valor04-1','valor05-2')" checked></TD>
    <TD><input id="11" type="radio" name="valor03" value="3" onClick="calcula('N','valor03-3','valor04-1','valor05-2')"></TD>
    <TD><input id="12" type="radio" name="valor03" value="3" onClick="calcula('A','valor03-3','valor04-1','valor05-2')"></TD>
</TR>
<TR>
    <TD bgcolor='#66FFFF'><div id="lbValue_04"></TD>
    <TD><input id="13" type="radio" name="valor04" value="5" onClick="calcula()" checked></TD>
    <TD><input id="14" type="radio" name="valor04" value="5" onClick="calcula()"></TD>
    <TD><input id="15" type="radio" name="valor04" value="5" onClick="calcula()"></TD>
</TR>
<TR>
    <TD bgcolor='#66FFFF'><div id="lbValue_05"></TD>
    <TD><input id="16" type="radio" name="valor05" value="3" onClick="calcula()" checked></TD>
    <TD><input id="17" type="radio" name="valor05" value="3" onClick="calcula()"></TD>
    <TD><input id="18" type="radio" name="valor05" value="3" onClick="calcula()"></TD>
</TR>
<TR>
    <TD ><div id="lbValue_06"></TD>
    <TD><input id="19" type="radio" name="valor06" value="4" onClick="calcula()" checked></TD>
    <TD><input id="20" type="radio" name="valor06" value="4" onClick="calcula()"></TD>
    <TD><input id="21" type="radio" name="valor06" value="4" onClick="calcula()"></TD>
</TR>
<TR>
    <TD><div id="lbValue_07"></TD>
    <TD><input id="22" type="radio" name="valor07" value="6" onClick="calcula()" checked></TD>
    <TD><input id="23" type="radio" name="valor07" value="6" onClick="calcula()"></TD>
    <TD><input id="24" type="radio" name="valor07" value="6" onClick="calcula()"></TD>
</TR>
<TR>
    <TD><div id="lbValue_08"></TD>
    <TD><input id="25" type="radio" name="valor08" value="5" onClick="calcula()" checked></TD>
    <TD><input id="26" type="radio" name="valor08" value="5" onClick="calcula()"></TD>
    <TD><input id="27" type="radio" name="valor08" value="5" onClick="calcula()"></TD>
</TR>
<TR>
    <TD><div id="lbValue_09"></TD>
    <TD><input id="28" type="radio" name="valor09" value="8" onClick="calcula()" checked></TD>
    <TD><input id="29" type="radio" name="valor09" value="8" onClick="calcula()"></TD>
    <TD><input id="30" type="radio" name="valor09" value="8" onClick="calcula()"></TD>
</TR>
<TR>
    <TD><div id="lbValue_10"></TD>
    <TD><input id="31" type="radio" name="valor10" value="2" onClick="calcula()" checked></TD>
    <TD><input id="32" type="radio" name="valor10" value="2" onClick="calcula()"></TD>
    <TD><input id="33" type="radio" name="valor10" value="2" onClick="calcula()"></TD>
</TR>

</TABLE>


<input id="tx" type="text" name="total" value="52">   
  
</FORM>   
</BODY>   
</HTML>

Editado por RICK OURO
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
O que você quer fazer parece que é simples, mas ta dificil entender rsss. Tem algum exemplo de algum site? Explica melhor o que você precisa que aconteça

Olá Andreia, espero que possa me ajudar e desde já agradeço.

Bom vamos lá.

No codigo acima ele monta + ou - isso.

Quando carrega o sim já vem tudo checked e Soma abaixo.

valor sim não n/a

------ ---- ---- ----

7 (*) () ()

2 (*) () ()

6 (*) () ()

3 (*) () ()

5 (*) () ()

--------------------

[ 23 ] Total

----------------------------------------------------------------------------------------------------------

Quando selecionar o não tem que Subtrair o valor do total.

valor sim não n/a

------ ---- ---- ----

7 () (*) ()

2 (*) () ()

6 (*) () ()

3 (*) () ()

5 (*) () ()

--------------------

[ 16 ] Total

----------------------------------------------------------------------------------------------------------

Quando selecionar o n/a tem que zerar o valor selecionado e Redistribuir o valor para outros predeterminados.

valor sim não n/a

------ ---- ---- ----

0 () () (*) era 7 fica 0

2 (*) () ()

8 (*) () () era 6 soma 2

8 (*) () () era 3 soma 5

5 (*) () ()

--------------------

[ 23] Total

O form ira ser montado dinamicamente pois os dados seram carregados aparti de uma base.

Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia!!

Galera, eu andei verificando e acho que uma solução para o meu problema seria cria um matriz multidimensional, alguém tem ideia de como resolver?

Consegui montar em excel, VER :ninja:

Como eu disse, estou aprendendo. Estou ficando sem tempo, para entrega do trabalho. Se alguém quiser aceitar o desafio estarei REMUNERANDO.

grato

Rick Ouro

Editado por RICK OURO
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...