jgd Postado Janeiro 20, 2010 Denunciar Share Postado Janeiro 20, 2010 Pessoal, Preciso validar campo <select multiple> Tenho 2 select multiple : list1 e list2 O usuário moverá os itens desejados do list1 para o list2. -Esta função consegui adaptar conforme abaixo. Preciso agora é validar o list2...Tem que exisitir pelo menos uma opção <option> dentro do list2. Obs: O elemento não precisa e não estará selecionado pelo usuário. Existe algum forma de efetuar esta validação??? Código: JavaScript<script language="JavaScript"> function move(MenuOrigem, MenuDestino){ var arrMenuOrigem = new Array(); var arrMenuDestino = new Array(); var arrLookup = new Array(); var i; for (i = 0; i < MenuDestino.options.length; i++){ arrLookup[MenuDestino.options[i].text] = MenuDestino.options[i].value; arrMenuDestino[i] = MenuDestino.options[i].text; } var fLength = 0; var tLength = arrMenuDestino.length; for(i = 0; i < MenuOrigem.options.length; i++){ arrLookup[MenuOrigem.options[i].text] = MenuOrigem.options[i].value; if (MenuOrigem.options[i].selected && MenuOrigem.options[i].value != ""){ arrMenuDestino[tLength] = MenuOrigem.options[i].text; tLength++; } else{ arrMenuOrigem[fLength] = MenuOrigem.options[i].text; fLength++; } } arrMenuOrigem.sort(); arrMenuDestino.sort(); MenuOrigem.length = 0; MenuDestino.length = 0; var c; for(c = 0; c < arrMenuOrigem.length; c++){ var no = new Option(); no.value = arrLookup[arrMenuOrigem[c]]; no.text = arrMenuOrigem[c]; MenuOrigem[c] = no; } for(c = 0; c < arrMenuDestino.length; c++){ var no = new Option(); no.value = arrLookup[arrMenuDestino[c]]; no.text = arrMenuDestino[c]; MenuDestino[c] = no; } } </script> Código Html <html> <head> <title>Escolhas</title> </head> <body> <FORM name="form" method="POST" action="txtMult.html" onSubmit='return valida();'> <table> <tr> <td> <select multiple size="10" name="list1" style="width:150"> <option value="1">Acre</option> <option value="2">Alagoas</option> <option value="3">Amapá</option> <option value="4">Amazonas</option> <option value="7">Distrito Federal</option> </select> </td> <td align="center" valign="middle"> <input type="button" onClick="move(this.form.list2,this.form.list1)" value="<<"> <input type="button" onClick="move(this.form.list1,this.form.list2)" value=">>"> </td> <td> <select multiple size="10" name="list2" style="width:150"> </select> </td> </tr> </table> <input type="submit" name="gravar"> </form> </body> </html>Agradeço Qualquer Ajuda...JGD Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 SK15 Postado Janeiro 20, 2010 Denunciar Share Postado Janeiro 20, 2010 (editado) Horas a parte mais díficil você já "fez" (esse é um código pronto :P) que era trasnportar um valor de um campo para outro ... a parte de válida o combo dois é a mais simples bastante seguir o que já fez até agora ... no seu caso basta colocar uma função 'valida' que conte quantos 'options' existe no 'list2' e esta tudo certo ...function valida() { var total_compo = document.forms.form.list2.options.length; if (total_compo == 0) { alert("Selecione ao mínimo um valor no Combo!"); return false; } return true; }Mas assim, se mandar para alguma linguagem dinâmica ela não ira conseguir 'capturar' os dados pois ela só consegue ler os options selecionados ... tera que fazer uma mascará com hidden por exemplo dentro do JS para enviar ... Editado Janeiro 20, 2010 por SK15 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jgd Postado Fevereiro 11, 2010 Autor Denunciar Share Postado Fevereiro 11, 2010 SK15, Você tinha razão.... Não há como pegar nenhum evento no neste arranjo. Preciso pegar os valores para mandar para php/mysql. Tentei algo assim... que rola com checkbox... Mas também não rolou...function contaCheckbox7(selecionados){ var string=""; var string2=""; //var opcao = document.form.fez_uso_medicam_out.value; var inputs, x, selecionados=0; inputs = document.getElementsByTagName('input'); for(x=0;x<inputs.length;x++){ if(inputs[x].type=='checkbox'){ if(inputs[x].checked==true && inputs[x].id == 'naoreal'){ string = string + inputs[x].value +"|" if (inputs[x].value==10){ document.form.outro8.value="S"; }else{ document.form.outro8.value="N"; //document.form.NaoRealMoti10Qual.value=""; } //document.form.outro8.value="N"; selecionados++; } } }He he he Qual seria o caminho das pedras para detectar os valores clicados no list1 acima???JGD Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
jgd
Pessoal,
Preciso validar campo <select multiple>
Tenho 2 select multiple : list1 e list2
O usuário moverá os itens desejados do list1 para o list2.
-Esta função consegui adaptar conforme abaixo.
Preciso agora é validar o list2...
Tem que exisitir pelo menos uma opção <option> dentro do list2.
Obs: O elemento não precisa e não estará selecionado pelo usuário.
Existe algum forma de efetuar esta validação???
Código: JavaScript
Código HtmlAgradeço Qualquer Ajuda...
JGD
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.