Actualização de campos com JavaScript
29/09/2010 00:00
0
Tenho uma classe que tem uma relação de um-para-um com Pessoa. Ambas as classes têm o campo contribuinte. Quando eu escolho uma pessoa para inseri-la como sócio eu gostaria que a página fizesse um refresh e actualizasse o campo contribuinte para introduzir no campo contribuinte do sócio, o campo contribuinte de Pessoa. Só sei que isso se faz no evento onChange Já tentei ver como se faz em Ajax mas é muito complicado. Gostava de saber como se faz em JavaScript. Alguém sabe onde possso encontrar informação para fazer isso?
Todo este problema surge porque alguns campos são comuns mas não são chave primária. Como resolver?
Tags: Tópicos avançados


0
Sugestões:

1. Vale muito à pena aprender Javascript. Tem uma coisa engraçada com Javascript&#058; é a única linguagem que todo mundo usa mas acha que não precisa aprender <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D --> - Por esta razão, é uma linguagem que costumo chamar de &quot;surpreendentemente maravilhosa&quot;, porque conforme você vai se aprofundando nela, vai ficando nítido o quão avançada ela é (é basicamente um Scheme com sintaxe do C)

2. Ajax pode se mostrar complicado no início. Após ter uma noção melhor do Javascript, pra ir se adaptando com o conceito, da uma olhada no jQuery. O que você quer pode ser feito usando jQuery de uma forma bastante tranquila.


0
Eu percebo de JavaScript, já estudei JavaScript. Não percebo é de JavaScript no GSP. Já consegui fazer o seguinte:


<g&#58;select optionKey=&quot;id&quot; from=&quot;${ipss.Pessoa.findAllWhere(tipo&#58;'Sócio')}&quot; name=&quot;pessoa.id&quot; value=&quot;${socioInstance?.pessoa?.id}&quot; var=&quot;escolhido&quot; value=&quot;${socioInstance?.pessoa?.id}&quot; noSelection=&quot;${['null'&#58;'Sócio']}&quot; onchange=&quot;funcao()&quot; ></g&#58;select>


E a função JavaScript&#058;


<g&#58;javascript>
function funcao(){

alert(&quot;Olá&quot;)
}

</g&#58;javascript>


E mostra a mensagem 'Olá' direitinho, mas se eu mudar o evento onChange para:


onchange=&quot;funcao(${socioInstance?.pessoa?.id})&quot;


E a função javascript para:


<g&#58;javascript>
function funcao(isto){

alert(isto)
}

</g&#58;javascript>


então nada acontece. Penso que esta é uma dúvida muito básica. A minha pergunta é... onde encontrar exemplos de scripts JavaScript em GSP?
29/09/2010 00:00


0
Opa amrac, entendi a sua dúvida.

No seu caso, o que vai ocorrer é o seguinte.

Quando você escreve o seguinte código:


onchange=&quot;funcao(${socioInstance?.pessoa?.id})&quot;


Na realidade vai estar gerando algo como


<select bla bla bla onchange=&quot;funcao(34)&quot;></select>


Por exemplo, porque o gsp vai pegar o valor da expressão e passá-lo para o HTML que será gerado em seguida.

Neste caso então, a melhor coisa a se fazer é o seguinte: na sua própria função javascript obter o valor do componente em questão, ou seja, resumidamente, não passar valor nenhum para a sua função, que poderia ser algo mais ou menos como o código javascript abaixo.

No seu GSP:

<g&#58;select bla bla bla onchange=&quot;funcao()&quot; id=&quot;select_bobao&quot;/>


E no seu Javascript

function funcao() {
var valor = document.getElementById(&quot;select_bobao&quot;).value
// em seguida fazer algo com o seu valor.
}


Entendi melhor sua dúvida agora? <!-- s:) --><img src="{SMILIES_PATH}/icon_smile.gif" alt=":)" title="Smile" /><!-- s:) -->


0
Entendi. E funcionou! Obrigada!
29/09/2010 00:00



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto