Javascript com o Jsf não está rodando help!

5 respostas
Javabuntu

Pessoal, quero fazer algumas máscaras pra deixar um formulário mais amigável pro usuário.... fiz com html puro e funcionou blz... com extensão .html

mas quando uso tags jsf, e rodo e página abri com .jsf ele não executa nada....a function não roda... se alguém puder ajudar...

o script:
<script type="text/javascript">

function mascara(o,f){
    v_obj=o
    v_fun=f
    setTimeout("execmascara()",1)
}

function execmascara(){
    v_obj.value=v_fun(v_obj.value)
}

function leech(v){
    v=v.replace(/o/gi,"0")
    v=v.replace(/i/gi,"1")
    v=v.replace(/z/gi,"2")
    v=v.replace(/e/gi,"3")
    v=v.replace(/a/gi,"4")
    v=v.replace(/s/gi,"5")
    v=v.replace(/t/gi,"7")
    return v
}

function soNumeros(v){
    return v.replace(/\D/g,"")
}
        </script>
    </head>
e o meu formulário:
<h:inputText id="matricula" onkeypress="mascara(this,soNumeros)" style="margin-left:7%; width :137px;" value="#{userBean.pessoa.matricula}" maxlength="8"   required="true"> 
 <f:validateLength minimum="6"/>
     </h:inputText>

vejam que eu chamo isto onkeypress="mascara(this,soNumeros)", no caso o campo só aceita números....mas quando executo no jsf não vai....
vlw a todos

5 Respostas

davidbuzatto

Quando for referenciar um componente de formulário gerado pelo JSF, vc precisa seguir o seguinte padrão:

document.getElementById( "idFormulario:idComponente" );

Sendo assim, atribua um id ao seu formulário. Dê uma olhada no código gerado pelo JSF que você vai entender melhor o que eu disse.

Até mais!

Javabuntu

obrigado pela ajuda davidbuzatto, mas desulpe a insisência na dúvida, eh a primeira que vez q tento javascript no jsf…

diante da sua ajuda… isto aqui não era pra funcinoar: :?:

<h:form id="cadastraUser"> 
 <h:inputText id="matricula" style="margin-left:7%; width :137px;" onkeypress="mascara('cadastraUser:matricula',soNumeros)" maxlength="6" value="#{userBean.pessoa.matricula}" required="true"> 
                            <f:validateLength minimum="6"/>
                            <f:validateLongRange/>
   </h:inputText>	
/...

e o mesmo script lá de cima…
vlw

davidbuzatto

Olá!

Você mudou:

v_obj=o

Para:

v_obj= document.getElementById( o );

?

Javabuntu

davidbuzatto:
Olá!

Você mudou:

v_obj=o

Para:

v_obj= document.getElementById( o );

?

mudei :frowning:

Javabuntu

será o q pode ser :?:

Criado 9 de fevereiro de 2008
Ultima resposta 11 de fev. de 2008
Respostas 5
Participantes 2