Jump to content


Photo

Função Onkeup E Multiplicação


  • Faça o login para participar
7 replies to this topic

#1 Marinamattos

Marinamattos

    Novato no fórum

  • Usuários
  • 9 posts
  • Sexo:Feminino
  • Localidade:São carlos

Posted 30/03/2010, 08:40

Bom dia, pessoal gostaria de uma ajuda,sou iniciante em javascript

é o seguinte eu tenho um combobox que o usuario ira escolher uma opção, as opções tem valores fixos 24, ou 3,5 etc... depois que ele escolher ele ira clicar no próximo campo e ira digitar a quantidade de alqueire (campo float) e eu tenho que multiplicar o que ta vindo do combo com o que ele digitou e mostrar este resultado no formulario tipo readOnly

Importante, esta multiplicação é a conversão de alqueire para ara/ha o meu campo readOnly é a area/Ha

Segue abaixo o que eu fiz em javascript e não esta funcionando e logo mais abaixo os formularios em html


<html metal:use-macro="here/main_template/macros/master">

<head>

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


<script type="text/javascript" language="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>

</head>


<body>
AGORA SEGUE O MEU FORMULÁRIO HTML


<fieldset id="calculaAlqueire">

<legend>Calcula alqueire</legend>

<br>


// AQUI É A OPÇÃO QUE O USUARIO VAI SELECIONAR

<div id="archetypes-fieldname-TIPO_ALQUEIRE" class="field ArchetypesStringWidget">
<label for="ALQUEIRE"> Tipo de Alqueire:</label> <br />
<span class="fieldRequired" title="Obrigatório" style="color: red;">(Obrigatório)</span><br />

<select id = "tipoAlqueire">

<option value = ""></option>

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

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

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

</select>

<br />
// AQUI É O CAMPO QUE ELE IRA DIGITAR A QUANTIDADE DE ALQUEIRE

<!-- quantidade de 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 id="quantidade"
tal:attributes="value python:test(errors,here.campo_do_request(request,'ALQUEIRE'),nothing)"><br />

</div>

//AQUI É O CAMPO AREA QUE É READONLY E IRA ME MOSTRAR O RESULTADO

<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 id = "areaHa" readOnly = "readyOnly" type = "text" />

</div>

</fieldset>


<br> muito obrigada

#2 Willian Gustavo Veiga

Willian Gustavo Veiga

    12 Horas

  • Usuários
  • 175 posts
  • Sexo:Masculino

Posted 30/03/2010, 11:58

Bom dia, tudo bem?

Por favor, coloque o seu código dentro das tags code aqui do fórum.
Está acontecendo algum erro?

Um abraço, tudo de bom.
Posted Image

#3 Marinamattos

Marinamattos

    Novato no fórum

  • Usuários
  • 9 posts
  • Sexo:Feminino
  • Localidade:São carlos

Posted 30/03/2010, 15:37

Bom dia, tudo bem?

Por favor, coloque o seu código dentro das tags code aqui do fórum.
Está acontecendo algum erro?

Um abraço, tudo de bom.


Oi, willian td bem? então fiz este codigo em javascript mas não esta fazendo nada, não da erro mas também nem a multipliação esta fazendo

#4 Willian Gustavo Veiga

Willian Gustavo Veiga

    12 Horas

  • Usuários
  • 175 posts
  • Sexo:Masculino

Posted 30/03/2010, 21:24

Você não organizou o código então não li ele.

Fiz um exemplo, não sei se é exatamente o que você quer mas...
Segue:
<html>
	<head>
		<title>Example</title>
		<script type="text/javascript">
		function multiply() {
			var values = document.getElementById('values');
			var userinput = document.getElementById('userinput');
			var result = document.getElementById('result');
			
			var floatResult = (parseFloat(values.options[values.selectedIndex].value) * parseFloat(userinput.value));
			result.value = floatResult;
		}
		</script>
	</head>
	<body>
		<form>
			<select id="values" name="values">
				<option value="24">24</option>
				<option value="3.5">3.5</option>
			</select>
			<input id="userinput" name="userinput" type="text" onkeyup="multiply()" />
			<input id="result" name="result" type="text" readonly="readonly" />
		</form>
	</body>
</html>
Por favor poste novamente.

Um abraço, tudo de bom.
Posted Image

#5 Marinamattos

Marinamattos

    Novato no fórum

  • Usuários
  • 9 posts
  • Sexo:Feminino
  • Localidade:São carlos

Posted 31/03/2010, 08:43

Você não organizou o código então não li ele.

Fiz um exemplo, não sei se é exatamente o que você quer mas...
Segue:

<html>
	<head>
		<title>Example</title>
		<script type="text/javascript">
		function multiply() {
			var values = document.getElementById('values');
			var userinput = document.getElementById('userinput');
			var result = document.getElementById('result');
			
			var floatResult = (parseFloat(values.options[values.selectedIndex].value) * parseFloat(userinput.value));
			result.value = floatResult;
		}
		</script>
	</head>
	<body>
		<form>
			<select id="values" name="values">
				<option value="24">24</option>
				<option value="3.5">3.5</option>
			</select>
			<input id="userinput" name="userinput" type="text" onkeyup="multiply()" />
			<input id="result" name="result" type="text" readonly="readonly" />
		</form>
	</body>
</html>
Por favor poste novamente.

Um abraço, tudo de bom.

Bom dia wllian obrigada por responder, eu te mandei os codigos que fiz e não funcionou e ja fiz igual ao seu e também não funcionou quando usuario selecionar a opção no combobox e clicar com o mouse no campo pra digitar a quantidade de alqueire , logo em seguida ja é pra mostrar o resultado no form readOnly sem ter que criar um botao pra ele clicar
obrigada mais uma vez

#6 Willian Gustavo Veiga

Willian Gustavo Veiga

    12 Horas

  • Usuários
  • 175 posts
  • Sexo:Masculino

Posted 31/03/2010, 09:08

O meu exemplo é o que você quer?
Você tentou usa-lo?

Um abraço, tudo de bom.

Testei o seu código aqui e ele está funcionando perfeitamente.

Um abraço.
Posted Image

#7 Marinamattos

Marinamattos

    Novato no fórum

  • Usuários
  • 9 posts
  • Sexo:Feminino
  • Localidade:São carlos

Posted 01/04/2010, 08:32

Bom dia Willian o meu código e nem o seu funcionou aqui, não da erro simplesmente não faz nada

Obrigada
Marina

#8 Willian Gustavo Veiga

Willian Gustavo Veiga

    12 Horas

  • Usuários
  • 175 posts
  • Sexo:Masculino

Posted 01/04/2010, 10:20

Bom dia,

você está testando em qual navegador? Qual a versão?

Um abraço, tudo de bom.
Posted Image




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq