• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

rgcouto

Problema com Array de radio buttons

5 mensagens neste tópico

Boas... ;)

estou aqui a desenvolver o meu CMS quando me deparo com um problema num script JS...

tenho um conjunto de dados que são oriundos de uma base de dados e que a cada um corresponde um radio button em k a ideia é seleccionar um dos botões e dps carregar num botão submit mas o botão submit só funcionar se algum radio estiver seleccionado.

e para isso tenho este código em JS:

		
<script LANGUAGE="JavaScript">

	function Valida(form) {
		preencheu = false;
		botoes = form1.id.length;

		if (botoes = "undefined") {
			botoes = 1;
		}

		for (i=0;i<=botoes;i++) {
			if (form1.id[i].checked) {
				preencheu = true;
				break;
			}
		}

		if (preencheu) {
			form.submit();
		} else {
			alert("É necessário escolher um dos registos.");
			return false;
		}

	}
	</script>

este ciclo para chamar o conjunto de registos

while($linha = mysql_fetch_row($resultado)) {

	if ($cor == "#007cb6") {
		$cor = "#FFFFFF";
		$estilo="style2";
	} elseif ($cor == "#FFFFFF") {
		$cor = "#007cb6";
		$estilo="style7";
	}


	if ($linha[3] == 0) {
		$linha[3] = "Não";
	} elseif ($linha[3] == 1) {
		$linha[3] = "Sim";
	}


	echo'
						<tr bgcolor="'.$cor.'">
							<td width="25" align="center"><input type="radio" name="id" value="'.$linha[2].'" /></td>
							<td class="'.$estilo.'" valign="middle">'.$linha[0].'</td>
							<td class="'.$estilo.'" valign="middle">'.$linha[4].'</td>
							<td class="'.$estilo.'" valign="middle">'.$linha[3].'</td>
							<td width="135" align="left" class="'.$estilo.'">'.$linha[1].'</td>
						</tr>';

}

e este para chamar o JS quando se carrega no botão de submit:

<td onMouseOver=this.bgColor="#007cb6" onMouseOut=this.bgColor="#FFFFFF" bgColor="#FFFFFF"><div align="center" class="style2"><input type="image" src="images/icos/visualizar.gif" width="16" height="16" name="botao" value="visualizar" onClick="return Valida()" tabindex="5"/><br>Visualizar</div></td>

agora o problema é o seguinte:

1 - Se apenas existir um registo na tabela, mesmo que seleccione o radio button este nao é aceite...aparece sempre a mensagem que é preciso seleccionar um registo.

2 - Se existirem vários registos na tabela, se seleccionar o ultimo registo este também n é aceite...aparece sempre a mensagem que é preciso seleccionar um registo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não li o teu post mas,

if (botoes = "undefined")

deveria ser

if (botoes == "undefined")

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não li o teu post mas,

if (botoes = "undefined")

deveria ser

if (botoes == "undefined")

o problema de ter vários registos e nao reconhecer o registado já está resolvido, mas se apenas tiver um registo continua a não dar :S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
//Troca o:
		for (i=0;i<=botoes;i++) {
			if (form1.id[i].checked) {
				preencheu = true;
				break;
			}
		}
//por:
		if(botoes == 1){ if(form1.id.checked) preencheu = true;
		}else{
			for (i=0;i<=botoes;i++) {
				if (form1.id[i].checked) {
					preencheu = true;
					break;
				}
			}
		}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora