Estou criando um sistema de votação onde a pessoa pode escolher um número determinado de respostas, então queria desabilitar as checkbox ao chegar a este valor e voltar a habilitar se a pessoa desmarcar algum campo. Problema que não tenho ideia como fazer isso em javascript.
Segue o código abaixo:
<h2>Votação</h2>
<div class="row">
<div class="col-sm-12">
<h4><?php echo $votacao->__get('titulo'); ?></h4>
<p>Término em <?php echo $votacao->__get('dataTermino'); ?></p>
<p><?php echo $erro; ?></p>
<?php echo form_open($link, array('class'=>"form-horizontal")); ?>
<?php
$i = 0;
foreach ($votacao->__get('opcoes') as $opcao){
echo '<div class="form-group">
<label>'.$opcao.'</label>'.
'<div class="col-sm-1">
<input class="form-control" type="checkbox" onkeyup="calcula()" name="opcaoform'.$i.'" id="opcao"/> '.
'</div></div>';
$i++;
}
?>
<input type="text" name="total" id="total" value="<?php echo $total; ?>" style="display: none"/>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-6">
<?php echo form_submit(array('name'=>'votar'), 'Votar'); ?>
</div>
</div>
</div>
</div>
<script>
//recebe valores do PHP
Function calcula () {
var numeroEscolhas = "<?php echo $numeroEscolhas; ?>";
var totalAnterior = document.getElementById('total').value;
if () {
//se marcou acrescenta um ao total
var total = totalAnterior + 1;
} else {
//se desmarcou diminui um ao total
var total = totalAnterior - 1;
}
if (total == numeroEscolhas) {
//desabilita checkboxs
document.getElementById('opcao').disabled;
} else {
//habilita checkboxs;
}
}
</script>
Olá gente, tudo bem? Então, eu tenho essa linha no meu arquivo htaccess:
RewriteRule ^usuario/(.*)$ usuario.php?nick=$1
Ela redireciona o link usuario/user para usuario.php?nick=user, porém, nosso sistema registra nicks com alguns caracteres especiais, e eu preciso que esses caracteres passem pela url. Se eu usar o link usuario.php?nick=?joao?, o nome ?joao? será identificado. Se eu uso usuario/?joao?, não identifica.
Eu procurei por tópicos como esse, mas só encontrei como "bloquear" as interrogações, e eu preciso justamente do contrário.
Obs: não posso abrir mão das interrogações nos nicks.
Queria saber como faço pra habilitar/desabilitar um campo de texto dependendo da minha seleção do combobox.
OBS: Eu fiz com um radiobutton e funciona de boa no "onClick". O código dele tá ai:
<input type="radio" name="q1" value="Não" onclick="if(document.getElementById('qual').disabled==false && document.getElementById('tempo').disabled==false){
document.getElementById('qual').disabled=true
document.getElementById('tempo').disabled=true
}" />
Não</td>
</tr>
<tr>
<td><input type="radio" name="q1" value="Sim" onclick="if(document.getElementById('qual').disabled==true && document.getElementById('tempo').disabled==true){
document.getElementById('qual').disabled=false
document.getElementById('tempo').disabled=false
}" />
Sim
A questão é que quando eu vou pro combobox, não sei consigo colocar pra o "onChange" funcionar direito:
<select name="tipo_consulta" required="true">
<option onchange="if(document.getElementById('valor').disabled==false && document.getElementById('desconto').disabled==false){
document.getElementById('valor').disabled=true
document.getElementById('desconto').disabled=true
}">Consulta</option>
<option onchange="if(document.getElementById('valor').disabled==true && document.getElementById('desconto').disabled==true){
document.getElementById('valor').disabled=false
document.getElementById('desconto').disabled=false
}">Retorno</option>
</select>
"valor" e "descontos" são os campos que eu quero que habilite/desabilite
Dessa forma que tá aí, ele não altera o estado dos campos.
Se eu colocar assim:
<select onchange="if(document.getElementById('valor').disabled==false && document.getElementById('desconto').disabled==false){
document.getElementById('valor').disabled=true
document.getElementById('desconto').disabled=true
}" name="tipo_consulta" required="true">
<option >Consulta</option>
<option onchange="if(document.getElementById('valor').disabled==true && document.getElementById('desconto').disabled==true){
document.getElementById('valor').disabled=false
document.getElementById('desconto').disabled=false
}">Retorno</option>
</select>
Ele desabilita, mas não habilita de novo quando mudo a opção.