Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia,
Preciso fazer uma tabela aonde dependendo da marcação outras são desativadas.
consegui usando as informações disponibilizadas pelo fórum chegar ao um código q faz isso.
o problema é que após eu desmarcar a opção as outras nao podem mais ser marcadas.
Ex-> ao marcar "segunda", terça e quarta são desabilitados. porem se eu quiser voltar e desmarcar segunda para marcar teça ou quarta, não posso mais.
tenho pouca experiencia nessa área, estou ajudando um amigo.
se alguém souber como fazer para corrigir isso agradeço muito.
segue o código:
<form>
<form id="MODALIDADES">
<table class="tg">
<tr>
<th class="tg-baqh"><b>MODALIDADES <b></th>
<th class="tg-baqh"><b>SEGUNDA<b></th>
<th class="tg-baqh"><b>TERÇA<b></th>
<th class="tg-baqh"><b>QUARTA<b></th>
<th class="tg-baqh"><b>QUINTA<b></th>
</tr>
<td class="tg-dzk6"><b>JUDO I <font size="1">(SEGUNDAS E QUARTAS)</font><b></td>
<td><center> <input type='checkbox' name='SEGUNDA' id='SEGUNDA' value='1' onclick="teste2(this);" /></td>
<td><center> <input type='checkbox'name='TERÇA' id='TERÇA' value='1' onclick="teste2(this);" /></td>
<td><center> <input type='checkbox' name='QUARTA' id='QUARTA' value='1' onclick="teste2(this);" /></td>
<td><center> <input type='checkbox' name='QUARTA' id='QUINTA' value='1' onclick="teste2(this);" /></td>
</tr>
<td class="tg-dzk6"><b>CAPOEIRA <font size="1">(SEGUNDAS E QUARTAS)</font><b></td>
<td><center> <input type='checkbox' name='SEGUNDA II' id='SEGUNDA II' value='1' onclick="teste2(this);" /></td>
<td><center> <input type='checkbox' name='TERÇA II' id='TERÇA II' value='1' onclick="teste2(this);" /></td>
<td><center> <input type='checkbox' name='QUARTA II' id='QUARTA II' value='1' onclick="teste2(this);" /></td>
<td><center> <input type='checkbox' name='QUINTA II' id='QUINTA II' value='1' onclick="teste2(this);" /></td>
</table><center>
<script language="javascript">
</script>
<script language="javascript">
function teste2(obj)
{
if (obj.checked == true)
{
if (obj.id == 'SEGUNDA')
{
document.getElementById('TERÇA').disabled = true;
document.getElementById('SEGUNDA II').disabled = true;
}
}
}
</script>
</form>oi Omar~,
realmente nao ficou bem explicado.
a funçao da formula esta fazendo o que pretendo, condicionar certas escolas. Ex: escolheu segunda, terça e quarta ficam desativadas.
o problema é que caso a pessoa erre a marcação nao tem mais volta.mesmo clicando no dia para dar uncheck as opçoes desabilitadas nao voltam mais. teria algum botao ou codigo q fizesse isso, deixar a tabela como de inicio ?
outro pedido, se nao for muito abuso, o código q estou utilizando esta correto, vai me fornecer os dados ?
nao tenho nenhuma experiencia nessa área. é a primeira vez que tento fazer um formulário.
obrigado!
>
3 horas atrás, Joao Cortat disse:
oi Omar~,
realmente nao ficou bem explicado.
a funçao da formula esta fazendo o que pretendo, condicionar certas escolas. Ex: escolheu segunda, terça e quarta ficam desativadas.
o problema é que caso a pessoa erre a marcação nao tem mais volta.mesmo clicando no dia para dar uncheck as opçoes desabilitadas nao voltam mais. teria algum botao ou codigo q fizesse isso, deixar a tabela como de inicio ?
outro pedido, se nao for muito abuso, o código q estou utilizando esta correto, vai me fornecer os dados ?
nao tenho nenhuma experiencia nessa área. é a primeira vez que tento fazer um formulário.
obrigado!
Sim o código que mostrou vai funcionar, só devo realsar que não use acentuações ou cedilhas no caso ID.TERÇA, use TERCA.
Você pode fazer com seu próprio código usando
>
Citar
if (obj.id == 'SEGUNDA') {
//ação a se tomar
} else if (obj.id == 'TERCA') {
// ação a se tomar
}
E assim vai validando todas as questões que achar necessário.
Só que para manipulação dos inputs modifique isso (No caso **#?** seria o ID do input que queira manipular)
**document.getElementById('#?').disabled = true;**
para
**document.getElementById('#?').setAttribute('disabled', 'disabled');**
E para deixar um input desabilitado acionável novamente pode suar isso
**document.getElementById('#?').removeAttribute('disabled');**
Não entendi direito, primeiro você quer se marcar uma opção não possa marcar mais, depois diz que pode marcar outra?
Me perdi nisso.
Enfim vamos ao que entendi que se marcar qualquer opção todas as outras fiquem indisponíveis, primeiramente você vai ter que consertar o html, remover tudo e qualquer elemento identificador ID.
Depois atribuir o elemento class a cada input.
No código javascript executa-se um loop buscando todos elementos com class tal e fazemos a mágica acontecer.
Veja o exemplo:
Html
Spoiler
<!DOCTYPE html>