Pegar valor variável JavaScript no JSF

4 respostas
R

eu tenho uma página que faz um controle do tempo de uma chamada...
ai tenho a função javascript:

<script type="text/javascript">
			var c=0;
			var t;
			var timer_is_on=0;
	
			function timedCount(){
				document.getElementById('formPrincipal:txt').value=c;
				c=c+1;
				t=setTimeout("timedCount()",1000);
			}
	
			function doTimer(){
				if (!timer_is_on){
					  timer_is_on=1;
					  timedCount();
				  }
			}
	
			function stopCount(){
				clearTimeout(t);
				timer_is_on=0;
			}
		</script>
<h:form id="formPrincipal" style="font-size:0.9em;align:center;padding-top:25px;padding-bottom:25px;padding-right:22px;padding-left:22px;">
		<p:growl id="growl"/>
		
		<h:outputLabel value="Informe a matrícula sem o 'F' "/>
		<p:inputText value="#{acompanhamentosBean.matricula}"/>
		<p:commandButton value="Iniciar"
						 action="#{acompanhamentosBean.buscarMatricula}"
						 update="formPrincipal"
						 image="ui-icon ui-icon-search"
						 onclick="javascript: doTimer()" />
						 
		<div style="text-align:right;">
			<p:inputText value="#{acompanhamentosBean.contadorDuracao}" id="txt" disabled="true" style="border:0;"/>
		</div>

o problema que este valor do contadorDuracao não chega ao meu bean....
ele mostra na página a contagem de segundo + segundo direitinho, mas no bean não vem.

o que posso fazer?

obrigado

4 Respostas

T

Tente fazer uma função JS que pegue o id do componente JSF que você deseja armazenar (ex.: _form:_id123) e atribua o valor da variável JS no componente da tela, algo do tipo

document.getElementById('_form:_id123') .value = minhaVariavelJS;
R

mas isto já está sendo feito nesta parte:

document.getElementById('formPrincipal:txt').value=c;

fazendo referência ao:

<p:inputText value="#{acompanhamentosBean.contadorDuracao}" id="txt" disabled="true" style="border:0;"/>
R

o inputText na página funciona direitinho… fica contando normalmente, mas independente do valor que mostra la, ao chegar no bean ele como 0.

T

Opa, campos disabled=true não são enviados em requisições HTTP, user readonly=true ao invés do disabled!

P.S.: No MBean fica igual a zero pois provavelmente o teu atributo é inteiro, e o valor padrão do mesmo é 0 :wink:

Criado 30 de maio de 2012
Ultima resposta 31 de mai. de 2012
Respostas 4
Participantes 2