Ir para conteúdo

POWERED BY:

Arquivado

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

Marina Mattos

[Resolvido] resultado da multiplicação em form readOnly

Recommended Posts

Bom dia pessoal, alguem pode me ajudar?

 

como faço pra multiplicar um valor que esta no checkbox com um valor que o usuario ira digitar no input e mostrar o resultado da multiplicação

em form readOnly?

 

vejam como esta meu formulario. o usuario seleciona uma das opções no checked e digita no campo alqueire, e o campo area é meu readOnly

           <legend> Dados da area </legend>
              <br>
                    <form id="myform">
               
                <input  type="radio" name="op" id="op1" value="2,42" checked="checked" />
                <label for="pradio1">Alqueire Paulista 24.200m<sup>2</sup>= 2,42/ha</label><br />
            
               <input  type="radio" name="op" id="op2" value="9,68"/>  
               <label for="pradio2">Alqueire Baiano 96.800m<sup>2</sup>= 9,68/ha</label><br />
              
               <input type="radio" name="op" id="op3" value="4,84"/>
               <label for="pradio3">Alqueire Mineiro 48.400m<sup>2</sup>= 4,84/ha</label><br />
               
                       
               
                <div  id="archetypes-fieldname-ALQUEIRE" class="field ArchetypesStringWidget">
               <div tal:define="err errors/ALQUEIRE| nothing;"
                  tal:attributes="class python:test(err,'field error','field')">
                <div tal:content="err"/>
                <label for="ALQUEIRE"> Quantidade de Alqueire:</label> <br />
                <span class="fieldRequired" title="Obrigatório" style="color: red;">(Obrigatório)</span><br />
                 <input class="focoverde" type=text name=ALQUEIRE size=20 
                 tal:attributes="value python:test(errors,here.campo_do_request(request,'ALQUEIRE'),nothing)">
                  
                             
                 </div> ///// O RESUSLTADO DA MULTIPLICAÇÃO TEM QUE MOSTRAR NESTE READONLY

                 <div  id="archetypes-fieldname-AREA" class="field ArchetypesStringWidget">
               <div tal:define="err errors/AREA| nothing;"
                  tal:attributes="class python:test(err,'field error','field')">
                <div tal:content="err"/>
                <label for="AREA">Area/ha:</label> <br />
                <input class="focoverde" type=text name=AREA readonly="readonly">
           
                   </div>
                                                              
             </fieldset>
             
              <br>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça assim:

 

http://forum.imasters.com.br/public/style_emoticons/default/seta.gif crie uma variável para pegar o value do checkbox (e pegue com parseInt() ou parseFloat())

http://forum.imasters.com.br/public/style_emoticons/default/seta.gif crie outra para o input[type=text] no mesmo esquema da de cima

http://forum.imasters.com.br/public/style_emoticons/default/seta.gif e outra para o input[type=text] com readOnly

 

Agora você decide quando o resultado deve mudar! No momento que o campo que recebe o valor perde o focus; no momento que o campo vai recebendo o valor (onkey[...]).

 

Depois de decidir isso, basta fazer a conta e exibir o valor.

 

Esboce alguma coisa e mostre-nos.

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

oi, thiago eu tentei fazer mas não deu muito certo não eu coloquei javascript la no meu page template assim: abaixo do codigo segue meus formularios

<body>
   
   <script language="JavaScript">

function multipl() {
multipl = parseFloat(document.form.opcao.value)*parseFloat(document.form.alqueire.value);
document.form.Result.value=multipl;
}
</script>

Meu formulario esta assim:

<form method="post" action="" name="opcao">
               
                <input type="radio" name="opcao" id="op1" value="2,42" checked="checked" />
                <label for="pradio1">Alqueire Paulista 24.200m<sup>2</sup>= 2,42/ha</label><br />
            
               <input type="radio" name="opcao" id="op2" value="9,68"/>  
               <label for="pradio2">Alqueire Baiano 96.800m<sup>2</sup>= 9,68/ha</label><br />
              
               <input type="radio" name="opcao" id="op3" value="4,84"/>
               <label for="pradio3">Alqueire Mineiro 48.400m<sup>2</sup>= 4,84/ha</label><br />
               
                       
                  <form method="post" action="" name="alqueire">
               
                <div  id="archetypes-fieldname-ALQUEIRE" class="field ArchetypesStringWidget">
               <div tal:define="err errors/ALQUEIRE| nothing;"
                  tal:attributes="class python:test(err,'field error','field')">
                <div tal:content="err"/>
                <label for="ALQUEIRE"> Quantidade de Alqueire:</label> <br />
                <span class="fieldRequired" title="Obrigatório" style="color: red;">(Obrigatório)</span><br />
                 <input class="focoverde" type=text name=ALQUEIRE size=20 
                 tal:attributes="value python:test(errors,here.campo_do_request(request,'ALQUEIRE'),nothing)">
                                              
                 </div> 

                  <form method="post" action="" name="result">
                  
                 <div  id="archetypes-fieldname-AREA" class="field ArchetypesStringWidget">
               <div tal:define="err errors/AREA| nothing;"
                  tal:attributes="class python:test(err,'field error','field')">
                <div tal:content="err"/>
                <label for="AREA">Area/ha:</label> <br />
                <input class="focoverde" type=text name=RESULT readOnly="readOnly">
           
                   </div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Têm vários opcao aí. Todos eles vão ser multiplicados? Acho que não, né?

 

Reformule isso e faça com DOM (getElement[...]).

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

 

Bom dia, Thiago todas as opções serão multiplicadas, o usuario ira escolher uma se ele é paulista seleciona 2,42 vezes o campo aqueire que ele ira digitar, se é mineiro seleciona o 4,84 que sera multiplicado pelo aqueire digitado por ele. como sou nova em javascript não conheço muito . Mas muito obrigada pela ajuda

vou tentar fazer o que me passou

 

obrigada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz um quebra-galho pra você, o código não é o mesmo que o seu mas faz o que você pediu, se tiver alguma dúvida é so falar

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">



<html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "en">

	<head>

		<meta http-equiv = "content-type" content = "text/html; charset=utf-8" />

		

		<script type = "text/javascript">

			window.onload = function () {

				var areaHa = document.getElementById ("areaHa");

				var quantidade = document.getElementById ("quantidade");

				var tipoAlqueire = document.getElementById ("tipoAlqueire");

				

				quantidade.onkeydown = function (event) {

					event = event ? event : window.event;

					var tecla = event.keyCode ? event.which : event.keyCode;

					var teclaReal = String.fromCharCode (tecla);
					

					if (isNaN (teclaReal)) {
						if (tecla !== 8 && tecla !== 37 && tecla !== 39 && tecla !== 46) return false;
					}

				}

				

				quantidade.onkeyup = function () {

					areaHa.value = tipoAlqueire.value * this.value;

				}

				

				tipoAlqueire.onclick = function () {

					areaHa.value = this.value * quantidade.value;

				}

			}

		</script>

		

		<style type = "text/css">

			#calculaAlqueire {

				padding: 15px;

			}

			

			#calculaAlqueire input, select {

				float: right;

			}

			

			#calculaAlqueire legend {

				font-size: 18px;

				font-weight: bold;

			}

			

			#calculaAlqueire label {

				display: block;

				width: 400px;

			}

		</style>

		

		<title>Alqueire</title>

	</head>

	

	<body>

		<fieldset id = "calculaAlqueire">

			<legend>Calcula alqueire</legend>

			

			<label>

				Tipo de alqueire: <select id = "tipoAlqueire">

					<option value = ""></option>

					<option value = "9.68">Baiano (96.800 m<sup>2</sup> = 9,68 ha)</option>

					<option value = "4.84">Mineiro (48.40 0m<sup>2</sup> = 4,84 ha)</option>

					<option value = "2.42">Paulista (24.20 0m<sup>2</sup> = 2,42 ha)</option>

				</select>

			</label> <br />

			

			<label>

				Quantidade: <input id = "quantidade" type = "text" />

			</label> <br />

			

			<label>

				Área/ha: <input id = "areaHa" readonly = "readyonle" type = "text" />

			</label>

		</fieldset>

	</body>

</html>

Off Topic:

 

Essa tag "code" ta ficando doida ! Antes era duplas tabs agora é duplas quebras de linha, daqui o pouco o código vai ficar ilegível O.o

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola, bom diaaaaaaaa , muitissimo obrigada M4 peguei o seu exemplo e alterei meu codigo aqui valeu pela ajuda viu

beijos

 

Cria um loop então mais ou menos assim:

 

var opt = document.getElementsByTagName('opcao');
for(var i = 0; i < opt.length; i++){
    if(opt[i].cheked){
        // faz o resto da soma aqui
    }
}
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Oi, Thiago td bem? muito obrigada pela sua ajuda viu?

ja deu certo aqui

bjus

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.