Ir para conteúdo

POWERED BY:

Arquivado

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

thiago_php

erro ao desabilitar

Recommended Posts

alguem pode me dizer porque nao ta funcionando parece que é na variavel i nao ta concatenando

 

<script language="JavaScript">
function checaOpcao(i){

document.frmTeste.cmbTeste+i.disabled = true;
}
</script>
<form name="frmTeste">
<input type="radio" name="optTeste" value="sim" onclick="checaOpcao('1')" checked> Opção 01<BR>
<input type="radio" name="optTeste" value="nao" onclick="checaOpcao('1')"> Opção 02<BR>

<BR><BR>
<select size="1" name="cmbTeste1">
   <option>Opção 01</option>
   <option>Opção 02</option>
   <option>Opção 03</option>
</select>
</form>

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa maneira que você está utilizando para concatenar realmente dá muitos problemas. O melhor seria utilizar o famoso getElementById, pois a concatenação torna-se mais fácil com seu uso.

 

Entretanto, se você preferir continuar concatenando com o uso de hierarquia, pode fazer como está no script abaixo, bastando para isso utilizar o quase esquecido: eval.

 

<script language="JavaScript">
function checaOpcao(id){
	local = eval("document.frmTeste.cmbTeste"+id);
	
	if (id == 1) {
		local.disabled = true;
	}else{
		local.disabled = true;
	}
}
</script>
<form name="frmTeste">
<input type="radio" name="optTeste" value="sim" onclick="checaOpcao(1)" checked> Opção 01<BR>
<input type="radio" name="optTeste" value="nao" onclick="checaOpcao(2)"> Opção 02<BR>

<br><br>
<select size="1" name="cmbTeste1">
<option>Opção 01</option>
<option>Opção 02</option>
<option>Opção 03</option>
</select>

<br><br>
<select size="1" name="cmbTeste2">
<option>Opção 01</option>
<option>Opção 02</option>
<option>Opção 03</option>
</select>
</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao mudei algumas coisas mas estou tentando fazer.

Por exemplo eu clico no checkbox sim da primeira linha ai ele abilita o combo do lado.

Quando eu clicar no sim da segunda linha ele tem que habilitar o combo do lado e desabilitar o combo da primeira linha

 

nao sei se conseguir explicar direito...

 

ate mais ...

 

<script language="JavaScript">

function checaOpcao(id,valor){        

local = eval("document.frmTeste.cmbTeste"+id);                

if (valor == "sim") {                

local.disabled = false;        

}else{                

local.disabled = true;        

}
}

</script>

<form name="frmTeste">

<input type="radio" name="optTeste" value="sim" onclick="checaOpcao(1,this.value)">sim
<input type="radio" name="optTeste" value="nao" onclick="checaOpcao(1,this.value)">nao


<select size="1" name="cmbTeste1">

<option>11111</option>
<option>22222</option>
<option>33333</option>

</select>

<br><br>

<input type="radio" name="optTeste" value="sim" onclick="checaOpcao(2,this.value)">sim
<input type="radio" name="optTeste" value="nao" onclick="checaOpcao(2,this.value)">nao


<select size="1" name="cmbTeste2">

<option>11111</option>
<option>22222</option>
<option>33333</option>

</select>

<br><br>

</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por favor, para maior organização, ao postar um código, coloque-o dentro das tags CODE, ok?!

 

O script abaixo mostra uma maneira muito simples de se fazer isso. Fiz algumas alterações para simplificar o processo, reduzindo a quantidade de radios.

 

Mesmo assim, se você não gostar, fica aí a idéia:

<script type="text/javascript">
//Quantidade de combos que você irá utilizar
var numCombos = 3;
var i;
function checaOpcao(id) {
//Desabilitando todos que porventura estejam selecionados:
desabilitar();

var mostrar = eval("document.frmTeste.cmbTeste"+id);
//Habilitando apenas o que foi passado como parâmetro:
	if (id != '0') {
		mostrar.disabled = false;
	}
}

//Desabilitar, inicialmente, todos os combos:
function desabilitar() {
	for (i=1; i<=numCombos; i++) {
		var ocultar = eval("document.frmTeste.cmbTeste"+i);
		ocultar.disabled = true;
	}
}

window.onload = desabilitar;
</script>


<form name="frmTeste">
Formas de pagamento:
<br><br><input type="radio" name="optTeste" value="Nenhuma" onclick="checaOpcao(0)" checked>Nenhuma
<br><input type="radio" name="optTeste" value="boleto" onclick="checaOpcao(1)">Boleto Bancário
<select size="1" name="cmbTeste1"><option>Banco SJ</option><option>Banco Caixa do Povo</option><option>Banco Mirs</option></select>
<br><input type="radio" name="optTeste" value="credito" onclick="checaOpcao(2)">Cartão de crédito
<select size="1" name="cmbTeste2"><option>Vision</option><option>MasterHouse</option><option>Mosten</option></select>
<br><input type="radio" name="optTeste" value="paypal" onclick="checaOpcao(3)">PayPal
<select size="1" name="cmbTeste3"><option>À vista</option><option>Parcelado</option><option>Sem juros</option></select>
</form> 

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.