JavaScript + JSF

2 respostas
K

Galera, to com um problema desde ontem e não consigo resolver…preciso disso para hj ate na hora do almoço, to so no desespero…kkk…Enfim e o seguinte!

Fiz um componente para o combobox do richfaces, ai na minha tela eu tenho um JavaScript que pega o valor dessa combo…ou seja, coloquei um onselect e cada vez que eu clicar em um valor da combo eu quero pegar este valor…coloquei o id no compomente e tals…mas não consigo pegar esse valor, alguem pode me socorrer??? segue o codig

compomente1

//compomente da combo
	<r:comboBox selectFirstOnUpdate="false"
		value="#{valor}" defaultLabel="Enter some value" disabled="#{readonly}" 
		onselect="#{onselect}" id="${key}">
                //esse aki eu herdo do componente2
		<jfsf:itens valor="#{itens}"/>
	</r:comboBox>

compomente2

<f:selectItems value="#{valor}"/>

como ta na minha tela

<tr>
					<td><h:outputText value="#{msg.role}" /></td>
					<td><jfsf:autocomplete
					     key="roleJS"
					     valor="#{val.formBean.nameRole}"
					     onselect="mostrar();"
				            itens="#{val.objects.roleList}" /></td>
				</tr>

meu JS

<script type="text/javascript">
	 			 function mostrar() {
		 			 
		 			var valor = document.getElementById("formulario:roleJS").value;
		 			alert(valor);
					var prop =  document.getElementById("formulario:propJS");
					if(valor == 'NV1'){
						prop.style.display = "none";
					}
					else{
						prop.style.display = "block";
					}
					
				}
				
			</script>

desse jeito que ta ae…ele pega um valor indefinido…ou seja neh…nenhum…

Pesquisei na net praticamente a noite toda e nada…alguem ja passou por isso e consguiu resolver???

Desde já agradeço!

2 Respostas

P
function getValor0( element ){
    
        if( element.type == 'radio' ){
            if( element.checked )
                return element.value;
        }
        else
        if( element.type == 'checkbox' ){
            if( element.checked )
                return element.value;
        }
        else
        if( element.type == 'select-one' ){
            var i=0;
            for(i=0;i<element.options.length;i++ ){
                if(element.options[i].selected )
                    return element.options[i].value;
            }

        }
        else
            return element.value;

    }

    function getValor( element ){
        return getValor0( element );
    }

para usar você tem que passar o obj.

ex:

value = getValor( document.getElementById( 'nome' ) );
K

Vlw galera a ajuda, mas tinha conseguido resolver…na correria aki da empresa não deu para responder…

Resolvi da seguinte forma…como to usando o componente de autoComplete e tals…passando o id nao ia funfar…ai usei o fireBug e acabei vendo o real id do compomente ai consegui pegar…

Abraços!!

Criado 25 de agosto de 2009
Ultima resposta 25 de ago. de 2009
Respostas 2
Participantes 2