vRaptor - id de option selecionada no controller [RESOLVIDO]

8 respostas
tefo

Eai galera…

alguem sabe se tem como pegar o ID de um option selecionado no controller?

por exemplo:

... <select id="cidade" name="pessoa.cidade.nome"> ... <option id="3229">Formigas</option> ... </select>

assim, dessa forma no controller eu pego como atributo nome do objeto Cidade o valor “Formigas”…
mas ainda nao descobri como pegar o id (3229) com o código da cidade selecionada…

Alguém tem idéia??

8 Respostas

tefo

consegui pegar o id no objeto Cidade no controller após o submit,
fiz isso adicionando um input hidden quando um option é selecionado:

Rafael_Guerreiro

tefo:
Eai galera…

alguem sabe se tem como pegar o ID de um option selecionado no controller?

por exemplo:

... <select id="cidade" name="pessoa.cidade.nome"> ... <option id="3229">Formigas</option> ... </select>

assim, dessa forma no controller eu pego como atributo nome do objeto Cidade o valor “Formigas”…
mas ainda nao descobri como pegar o id (3229) com o código da cidade selecionada…

Alguém tem idéia??


Não seria mais fácil você trocar o name do select para pessoa.cidade.id… Assim o VRaptor vai popular o ID dessa classe para você… Se você quiser preencher o nome também, cria um converter do VRaptor para essa sua classe que, ao receber o ID, já seta o nome do objeto…

tefo

eu tinha feito assim… mas o que eu definir no name ele sempre pega o value do option selecionado e não o id…

Rafael_Guerreiro

Sim, tem que ser pelo value…

O que você pode fazer é colocar o mesmo valor do value para o ID… mas nao sei para que serviria isso…

tefo

se eu fizer isso que vc disse então cada id seria o nome de uma cidade…
e como eu rodei um script de inserts de todas as cidades do brasil…
o nome não é um identificador único…

mas com o input hidden funcionou tranquilo…
eu soh tive que definir dinamicamente com jquery para mudar o valor do hidden toda vez que for selecionada outra cidade…
e deu certo! heheheh

Rafael_Guerreiro

Cara, digo para voce fazer isso:

<select id="cidade" name="pessoa.cidade.id"> ... <option value="3229">Formigas</option> ... </select>

tefo

eu tinha feito assim… mas o que eu definir no name ele sempre pega o value do option selecionado e não o id…

Rafael_Guerreiro

Mas é o value mesmo que ele tem que pegar, e não o ID…
Eu não sei para que que você precisa do ID do option…

Mas em todo caso, faça assim: <option value=“1225” id=“1225”>Algum option</option>

e assim você pode tirar aquele javascript que seta um input hidden…

Criado 24 de julho de 2012
Ultima resposta 25 de jul. de 2012
Respostas 8
Participantes 2