Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde, tudo bem?
Estou fazendo um site com um sistema de orçamento online. Nas páginas de produtos tem a lista de produto, o cliente quer que a pessoa coloque os valores de todos os itens que ele desejar e por fim acrescentar aqueles produtos com suas respectivas quantidades no carrinho, até aí tudo bem, resolvi isso com um checkbox.
Porém, preciso que, quando a pessoa colocar uma quantidade no campo de quantidade o checkbox seja selecionado automaticamente, como fazer isso? Os códigos que achei na internet não funcionaram... segue o código:
<?php while ($produtos = mysql_fetch_array($linhaoffice)) {
echo "<tr><td>" . $produtos["codigo"] . "</td><td><strong>" . $produtos["produto"] . "</strong> " . $produtos["detalhe"] . "</td><td>" . $produtos["complemento"] . "</td><td>" . $produtos["embalagem"] . "</td><td>" . $produtos["quantembalagem"] . "</td><td><input name='quant[" . $produtos["codigo"] . "]' type='text' size='1'><input type='hidden' value='" . $produtos['codigo'] . "' name='codigo'></td><td><input type='checkbox' name='orcar[]' value='" . $produtos['codigo'] . "'></td></tr>";} ?>
<tr><td colspan="7" align="right"><input type='submit' value='Acrescentar'></form></td></tr>
Desde já agradeço :)
Não estava tentando com jQuery, não. Fiz o teste aqui mas não deu certo, acredito que o problema é porque esses campos estão num laço de repetição, como eu especifico a linha que a ação deve ocorrer? Por exemplo, quando eu coloco valor no input da 1ª linha o checkbox da 1ª linha deve ser preenchido. Ou ele já faz essa associação?
Obrigada pela resposta.
Desculpe, Lucas. Entendi mais ou menos o que você falou. Consegui resolver, porém, está do jeito que eu achei que ficaria, a função seleciona todas as checkbox. Não entendo muito de javascript e jQuery, não estou conseguindo entender como eu faço pra ele selecionar só o próximo, eu imagino que seja algo mais ou menos assim:
$(document).ready(function(){
$('.quant').keyup(function(){
$(this).next().(':checkbox').attr('checked',true);
});
});
Mas não está funcionando e eu não sei o que estou fazendo de errado... preciso muito de uma luz
Tenta isso:
$(this).parent().next().find('input:checkbox').attr('checked',true);
Funcionou, sim, exatamente do jeito que eu precisava. Não sabia que iria precisar do parent() e não conhecia a função find(). Muito obrigada!
Resolvido!
No código que você postou, o next era o campo hidden. Neste segundo que postei, eu volto à td, vou para a próxima (td) e procuro (find) o checkbox. :thumbsup:
Você está utilizando jQuery?
Se sim, basta colocar o teste do valor digitado no evento keyup() e, caso seja um número, seleciona o checkbox respectivo.