Ir para conteúdo

POWERED BY:

Arquivado

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

felipe_DM

Erro ao declarar função Javascript (Undefined Variable)

Recommended Posts

Boa tarde a todos. Desde já parabenizo este fórum que me ajudou em muitas de minhas duvidas, porem não achei nada na busca a respeito do meu problema.

Estou fazendo um Projeto de Conclusão de Curso do meu curso técnico em informática e agora estou na etapa de validação dos campos, só que assim que comecei deparei com um erro que nunca vi.

Ao declarar uma função no evento onKeyUp de um campo para efetuar uma divisão simples, aparee um erro no Console de erro do Opera assim:

Statement on line 1 : Undefined Variable divisao_simples.

divisao_simples é o nome da função, e está acusando que é uma variavel que não foi definida, chequei a sintaxe varias vezes e não ahei erro algum na nomeação da variavel.

aqui a função Javascript:

function divisao_simples(campo,alvo,valor_divisao) {
						var n1 = parseFloat(document.frm.dados[campo].value);
						
						var div = parseFloat(dados[campo]) / parseFloat(valor_divisao);
						document.frm.dados[alvo].value = div;
						 }
e aqui o HTML: Chamei a função no penúltimo campo(Litros:), para inserir o resultado no último campo.

(Coloquei apenas uma parte do formulario)

	<body>
        <iframe name="iframe" target="#"></iframe>
		<form name="frm" method="POST" action="lancamento_bd/inc_media_colheita.php" target="iframe" onSubmit="refresh();">
         <fieldset>
            <legend>Dados Gerais</legend>
			<label>Código: <? exibe_codigo('Cod_Media','media_colheita'); ?> </label>  <br />
			<label>Data: <input type="text" name="dados[]" size="10"/></label> <br />
            <label>Fazenda: <select name="dados[]" >
                                    <option selected="selected"></option>
                                     <? exibe_select('Cod_Fazenda','fazendas'); ?>
                           </select>
            </label>				<br />
            <label>Turma: <select name="dados[]" >
                                    <option selected="selected"></option>
                                     <? exibe_select('Cod_Turma','turmas'); ?>
                           </select>
            </label>				<br />
            <label>Gleba: <select name="dados[]" >
                                    <option selected="selected"></option>
                                     <? exibe_select2('Cod_Gleba','glebas','Sigla'); ?>
                           </select>
            </label>				<br />
            <label>Atividade: <select name="dados[]" >
                                    <option selected="selected"></option>
                                     <? exibe_select('Cod_Atividade','atividades'); ?>
                           </select>
            </label>				<br />
          <fieldset>
            <legend>Café</legend>
            <label>Litros:<input type="text" name="dados[]" size="5" onKeyUp="divisao_simples('4','60','5');"/></label>  <br />
            <label>Latões:<input type="text" name="dados[]" value="0" size="5" readonly="readonly" /></label> <br />

 

 

Os nomes dos campos estão sempre com o mesmo nome pois os dados do formulário são tratados como vetor no arquivo que salva no banco de dados, como posso chamar um campo especifico do formulario na função javascript? coloquei o respectivo numero entre os colchetes como parametro da função... mas não deu pra testar devido o erro descrit mais em cima.

Alguém pode me ajudar? Desde já agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui você ta mandando os numeros como string, eh preciso isso ?

onkeyup="divisao_simples(4,60,5);

 

e também eh bom você por o return antes da função

onkeyup="return divisao_simples(4,60,5);

 

fora isso nao vi nada

teste de novo com essas modificações

Compartilhar este post


Link para o post
Compartilhar em outros sites

você ta fazendo assim né ?

<script type='text/javascript'>
function divisao_simples(campo,alvo,valor_divisao) {
var n1 = parseFloat(document.frm.dados[campo].value);

var div = parseFloat(dados[campo]) / parseFloat(valor_divisao);
document.frm.dados[alvo].value = div;
}
</script>

A função está na mesma página ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A função não tem como ler o nome do campo definido como valor de um array dados[campo],

pois não sabe como é o array.

Ela espera uma string para o nome.

No seu teste substitua name = "dados[]" por uma string.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pelas dias mas tentei trocar o nome, mas ainda está dando problema e nem da pra ver se está funcionando por causa do erro

Tirei os parenteses dos parametros mas não resolveu nada...

o script está em outro arquivo e linkado corretamente, mas aquele erro persiste...

UNDEFINED VARIABLE na linha 1...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz mais algumas alteraçãoes e consegui fazer o cálculo, mas se eu colocar os nomes "dados[]" não funciona...

tem como eu atribuir um outro nome no campo que possa ser lido pelo javascript mas mantendo o lido pelo php?

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.