Eu estou criando um formulário de cadastro, onde o cliente poderá escolher mais de um produto/acessorios nesse formulário (É um sistema de ordem de serviço). O problema é que não sei bem a forma mais correta de fazer isso. Estive pensando em usar o JQuery para clonar os inputText de adição dos produtos, colocando um botão de “Adicionar produto”, mas pelo que eu vi na documentação, a função clone não copia todos os elementos. Quando eu copio, o selectOneMenu não funciona, e os outros campos copiam o conteudo quando adiciono outro produto, não dá certo rs. Então como eu posso fazer para clonar os inputText? Ou tem outra maneira melhor de fazer essa funcionalidade de poder adicionar mais de um produto?
utilizo essa função, ela clona o formulario, mais os inputs e select nao funcionam.
O PrimeFaces tem o componente selectCheckboxMenu e selectManyMenu, ve se eles não te ajudam.
Bom… sobre clicar num botão e aparecer um novo inputText, eu nunca fiz (mas quero também), pelo o que eu me lembro/procurei, o PrimeFaces não tem um componente para isso.
Eu nunca fiz isso e é algo que estou querendo a um tempo…
Mais tarde (amanha ou depois) irei tentar, se eu conseguir eu posto aqui
C
Cicero_regis
blz, vou testar esse do primeFaces.
Em relaçao ao clone com Js ele funciona blz e é bem simples, o problema é pq ele clona o formulario eles a partir do segundo formulario nada funciona. Na internet a maioria é feita com Jquery, e no jsf não sei como faz para que ele funcione. pois não reconhece o Id dos campos.
J
javaflex
Como você mesmo falou, o clone funciona, sempre usei. Poste o código (lado client) que reproduza o problema, assim fica mais fácil verificarmos executando no navegador.
C
Cicero_regis
quando eu dou console.log(p_clone) ele me retorna todas as linhas normalmente, sem erros.
só não entendo pq não funciona os elementos filhos ( ficam inativos)
<p:panelheader="Produtos/Acessorios"><divclass="ui-g"id="addproduto"><divclass="ui-g-3"><p:outputLabelfor="t"value="Produtos"/><p:selectOneMenuid="t"value="#{ordemServicoController.produto}"effect="fade"filter="true"filterMatchMode="startsWith"converter="omnifaces.SelectItemsConverter"><f:selectItemsvalue="#{ordemServicoController.produtos}"var="produto"itemLabel="#{produto.description}"itemValue="#{produto}"/></p:selectOneMenu></div><divclass="ui-g-3"id="quantidade"><p:outputLabelvalue="Quantidade"for="quant"/><p:inputTextid="quant"value="#{ordemServicoController.itemVenda.quantidade}"requiredMessage="campo nome Quantidade é obrigatorio"/></div><divclass="ui-g-3"><p:outputLabelvalue="Preço"for="pre"/><p:inputTextid="pre"value="#{ordemServicoController.itemVenda.precoParcial}"/></div><divclass="ui-g-2"><p:outputLabelvalue="Total"for="tot"/><p:inputTextid="tot"readonly="true"/><p:commandButtonicon="fa fa-minus"style="width:52px;height:23px;margin-left:1%;position:absolute;"onclick="removerProduto()"/></div></div></p:panel><p:commandButtonid="add"value="Adicionar outro produto"icon="fa fa-plus"style="width:182px;height:30px;margin-top:10px;margin-left:10px;"onclick="addProduto()"/><p:separator/><p:panelid="resp"header="Responsaveis"><p:panelGridcolumns="2"columnClasses="ui-grid-col-2,ui-grid-col-4"layout="grid"styleClass="ui-panelgrid-blank"><p:outputLabelvalue="Funcionario"for="func"/><p:inputTextid="func"value="#{usuarioLogado.usuario.nome}"requiredMessage="campo nome Vendedor é obrigatorio"readonly="true"/><p:outputLabelfor="console"value="Tecnico"/><p:selectOneMenuid="console"value="#{ordemServicoController.tecnico}"effect="fade"filter="true"filterMatchMode="startsWith"converter="omnifaces.SelectItemsConverter"><f:selectItemsvalue="#{ordemServicoController.tecnicos}"var="tecnico"itemLabel="#{tecnico.description}"itemValue="#{tecnico}"/></p:selectOneMenu><p:commandButtonaction="#{ordemServicoController.salvar()}"value="Salvar"icon="fa fa-check"style="margin-left:150%;"update="@form"ajax="true"/></p:panelGrid></p:panel></div>
J
javaflex
Posta o código que está no navegador, esse que vai valer pro jquery.
C
Cicero_regis
eu fiz um exemplo só com html e funcionou os nós filhos funcionaram,mais no jsf não.
Não sei se entendi bem, mas está tentando usar jquery em cima do código JSF? Jquery é para o lado client. JSF é lado servidor. Então trabalhe em cima do HTML recebido pelo navegador.
C
Cicero_regis
não. Quero com js puro. jquery não funciona muito bem.
O que não funcionar você posta um teste nesse site reproduzindo o problema.
C
Cicero_regis
continua o mesmo problema, meu selecOneMenu nao carrega as opçoes do nó filho.
J
javaflex
Veja as opções do clone.
Fora isso, poste de fato o código com o evento e js que faz a carga, senão não temos como advinhar o código real no client em que está passando problema.