Ir para conteúdo

POWERED BY:

Arquivado

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

-rafael-

nao funciona ocultar partes do form

Recommended Posts

ola a todos

 

tenho o seguinte codigo para ocultar uma parte do form:

 

 

function mostraData(form) {
	if (form.radio[0].checked) {
    	document.getElementById("tagspan").style.visibility="visible";
	}
	else if (form.radio[1].checked) {
    	document.getElementById("tagspan").style.visibility="hidden";
    	form.campoform.value = ""
	}
	else{
    	document.getElementById("tagspan").style.visibility="hidden";
	}
}

 

a parte do form q tem q ser ocultada

        	<table width="744" align="center" cellpadding="1" cellspacing="3">
            	<tr>
                	<td width="108">label:</td>
                	<td width="50"><input type="radio" name="radio" value="1" id="radio_0" <?php echo $dados['dados'] == "1" ? 'checked="checked"' : ''; ?> onClick="mostraData(document.formulario)" />Sim</td>
                	<td width="50"><input type="radio" name="radio" value="0" id="radio_1" <?php echo $dados['dados'] == "0" || is_null($dados['dados']) ? 'checked="checked"' : ''; ?> onClick="mostraData(document.formulario)" />Não</td>
                	<span id="tagspan"> <!-- COMEÇA AQUI -->
                	<td width="40" align="right">Local:</td>
                	<td width="466"><input name="local" type="text" class="CaixaTexto" id="local" onblur="upperMe(this); remacc(this);" onkeypress="return blockChars(event, 3);" value="<?php echo $dados['local'];?>" size="69" maxlength="60" /></td>
      	</span> <!-- TERMINA AQUI -->
                	<script type="text/javascript">
                    	mostraData(document.formulario);
                	</script>
            	</tr>
        	</table>

acontece que quando uso o codigo acima, digitando localhost/nomedaaplicacao, funciona perfeitamente, mas quando digito o ip ou passo para o servidor, digitando 192.168.0.104/nomedaaplicaçao, o codigo acima para de funcionar.

 

por que isso acontece???

 

obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não faz muito sentido não funcionar no servidor..

 

mas procure trabalhar com:

if (document.getElementById('radio_0').checked)
no lugar de:
if (form.radio[0].checked)

tem como postar um link para vermos o código rolando ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola,

 

obrigado pela ajuda

 

William

 

agora agora, nao tem como pois nao estou proximo do servidor...

 

agora eu tbm nao entendo o q esta acontecendo

 

essa parte:

form.campoform.value = ""
que apaga o valor do campo se você setar 'não', funciona perfeitamente, mas a parte de ocultar nao funciona.

 

não consigo entender. ja testei de tudo, ou quase.

 

fiz a substituiçao de codigo que você sugeriu mas mesmo assim nao foi.

 

obs: no firefox nao funciona de jeito nenhum. no IE8 da forma que eu citei acima.

Compartilhar este post


Link para o post
Compartilhar em outros sites

existe um input com name = 'campoform' ??

 

atribua um id a ele, e chame com:

document.getElementById('campoform')

leia este material:

http://www.quirksmode.org/dom/intro.html

Compartilhar este post


Link para o post
Compartilhar em outros sites

ola

 

esse campo existe (esse foi um nome generio q eu utilizei para o exemplo).

 

como você pode ver no 1º post o nome e o id é 'local'

 

mas a parte de apagar o valor deste campo funciona bem, o q nao consigo é esconder ele.

 

tambem mudei o codigo, conforme sua sugestao.

 

mas ainda nao foi.

 

obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

poste como ficou o código atual, e esteja certo de estar atualizando os arquivos corretamente.

 

não existe motivo para um código javascript funcionar localmente, e 'hospedado' deixar de funcionar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

segue o codigo

 

javascript

 

function mostraData() {
	if (document.getElementById('radio_0').checked) {
 	document.getElementById("tagspan").style.visibility="visible";
	} else if (document.getElementById('radio_1').checked) {
 	document.getElementById("tagspan").style.visibility="hidden";
 	document.getElementById('local').value = ""
	} else {
 	document.getElementById("tagspan").style.visibility="hidden";
	}
}

html:

 

 <table width="744" align="center" cellpadding="1" cellspacing="3">
 <tr>
 <td width="108">label:</td>
 <td width="50"><input type="radio" name="radio" value="1" id="radio_0" <?php echo $dados['dados'] == "1" ? 'checked="checked"' : ''; ?> onclick="mostraData()" />Sim</td>
 <td width="50"><input type="radio" name="radio" value="0" id="radio_1" <?php echo empty($dados['dados']) ? 'checked="checked"' : ''; ?> onclick="mostraData()" />Não</td>
 <span id="tagspan"> <!-- COMEÇA AQUI -->
 <td width="40" align="right">Local:</td>
 <td width="466"><input name="local" type="text" class="CaixaTexto" id="local" onblur="upperMe(this); remacc(this);" onkeypress="return blockChars(event, 3);" value="<?php echo $dados['local'];?>" size="69" maxlength="60" /></td>
 </span> <!-- TERMINA AQUI -->
 <script type="text/javascript">
 mostraData();
 </script>
 </tr>
 </table>

só pra citar, tanto o 'localhost' quanto o 192.168.0.104 são o mesmo local.

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

o HTML está errado. Você não pode colocar um span assim, pegando 2 TDs... pelo FireBug, consegui ver que o script está rodando certinho, porém o span se esconde, sem levar em conta nada da tabela, e isso acontece pois a marcação HTML está errada.

 

simplificando o teu script, e arrumando o HTML, funciona tudo corretamente:

<script type="text/javascript">
function mostraData() 
{
	if (document.getElementById('radio_0').checked) 
	{
		document.getElementById("tagspan").style.visibility="visible";
	} 
	else if (document.getElementById('radio_1').checked) 
	{
		document.getElementById("tagspan").style.visibility="hidden";
		document.getElementById('local').value = ""
	}
	else
	{
		document.getElementById("tagspan").style.visibility="hidden";
	}
}
</script>
 
	<label>label:</label>
		<input type="radio" name="radio" value="1" id="radio_0" onclick="mostraData()" />Sim
		<input type="radio" name="radio" value="0" id="radio_1" onclick="mostraData()" />Não

	<span id="tagspan">
		<label>Local:</label>
		<input name="local" type="text" id="local" value="" size="69" maxlength="60" />
	</span><!-- /tagspan -->
	
	<script type="text/javascript">
	mostraData();
	</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

William, obrigado pela ajuda

 

então a sugestão seria remover as tabelas??

 

ou crio uma tag para cada caso (label e textfield) sem tirar as tabelas?

 

obrigado pelo empenho!

Compartilhar este post


Link para o post
Compartilhar em outros sites

A primeira sugestão é remover as tabelas, pois não é nem semântico usar elas.

 

o problema ocorreu, pq não se pode fazer:

<span>
   <td></td>
   <td></td>
</span>

isso não existe ! por isso não funcionava.

testou o código que coloquei ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola

 

descobri que tem mais um codigo meu q nao funciona se nao for localhost:

 

<body onmouseover="window.status='MENSAGEM NA BARRA DE STATUS';return true;" scroll=yes>

com isso fica aparecendo uma msg na barra de status, porem se estiver no endereço 192.168.0.104/nomedaaplicaçao, nao funciona.

 

pq será isso? como acabo com isso?

 

obrigado

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.