Pessoal, preciso alterar o value (texto que representa o commandlink) via javascript, porem nao estou conseguindo, o que eu faço:
no onclick do mesmo, eu chamo uma função js, enviando o seu ‘this’.
a funcao:
function changeValueOf(objeto) {
document.getElementById(objeto.id).value = 'teste';
}
não funciona! Alguém tem alguma idéia?
Valeu!
Eu nunca mechi com jsf mas em html seria assim:
<html>
<body>
<script type="text/javascript">
function teste(obj){
if(obj.value == '1') obj.value = '2';
else obj.value = '1';
}
</script>
<input type="button" value="1" onclick="teste(this);"/>
</body>
</html>
Eu vou assumir que, quando você disse commandLink, na realidade, se referiria à tag do HTML.
É o seguinte, não vou te dar a resposta pronta, porque eu mesmo não sei. Mas posso te mostrar o caminho das pedras.
Primeiro, se você passou this como referência, não precisa fazer isso:
basta fazer isso:
Segundo, só é possível usar o “value” se a tag HTML tiver o atributo “value”. A tag não tem, portanto fazer a atribuição é simplesmente ineficaz.
Terceiro, a mensagem a ser exibida como link está dentro da tag . Em XML, isso significa que o texto é filho de , correto? Acredito eu (porque não testei), que você tenha que criar um node, atribuir uma mensagem ao node, apagar os filhos atuais do node , e “appendar” o node criado por você como filho de . O DOM do Javascript é parecido com o DOM do Java. Exemplo: criar um node texto HTML:
Procure mais na internet sobre o DOM em Javascript, fuçe o código, que você deve achar uma solução.
então, tbm ‘deveria’ ser assim… porem, parece que um link não tem a propriedade ‘value’ ou uma que represente seu texto… 
[quote=Leonardo3001]Eu vou assumir que, quando você disse commandLink, na realidade, se referiria à tag do HTML.
É o seguinte, não vou te dar a resposta pronta, porque eu mesmo não sei. Mas posso te mostrar o caminho das pedras.
Primeiro, se você passou this como referência, não precisa fazer isso:
basta fazer isso:
Segundo, só é possível usar o “value” se a tag HTML tiver o atributo “value”. A tag não tem, portanto fazer a atribuição é simplesmente ineficaz.
Terceiro, a mensagem a ser exibida como link está dentro da tag . Em XML, isso significa que o texto é filho de , correto? Acredito eu (porque não testei), que você tenha que criar um node, atribuir uma mensagem ao node, apagar os filhos atuais do node , e “appendar” o node criado por você como filho de . O DOM do Javascript é parecido com o DOM do Java. Exemplo: criar um node texto HTML:
Procure mais na internet sobre o DOM em Javascript, fuçe o código, que você deve achar uma solução.
[/quote]
obrigado, vou tentar
Leonardo, muito obrigado! Funcionou!
Segue:
function addTextNode()
{
var newtext = document.createTextNode(" Some text added dynamically. ");
var para = document.getElementById("p1");
para.appendChild(newtext);
}
Abração!!!