Uma pergunta aos mestres em JQuery.
Consigo utilizar o find() para retornar resultados que "não" contenham uma sentença informada com curinga?
Atualmente eu já utilizo e funciona muito bem dessa forma:
$('#pnPaineisFormulario').find('input[id$=_d]').
Neste caso me retorna todos os campos que possuem "_d" no final da ID, mas preciso que traga somente os que não tenha.
Surgiu essa necessidade por causa dos botões switch do Style Guide, que duplicam o objeto quando renderiza, criando um outro, porém com _d no final.
1 curtida
Tentei assim Gustavo:
$(“:not(‘input[id$=_d]’)”);
Mas não trouxe o resultado esperado.
Então, você pode tentar da maneira que o Gabriel mencionou. Em todo caso também é possível fazer a negação direto no atributo. Como descrito aqui: jQuery [attribute!=value] Selector
@Tiago, tente dessa forma:
$("input:not(input[id$='_d'])");
Sucesso Gabriel, trouxe todos os campos que eu queria. Mas e sobre essa questão do Fluig duplicar os campos e nomear com _d no final do id, é normal? Eu já tinha notado que ele faz isso com campos tipo select também, daí tenho que ficar tratando e ocultando eles pra não ficar duplicado na tela.
1 curtida
Na verdade nunca vi isso de duplicar campo e adicionar _d no final. O que vejo que ocorre comigo é que quando bloqueio o campo no enable fields ele duplica o campo e adiciona _ antes do name do campo:
Exemplo: tenho o campo
<input type="text" name="teste" id="teste" />
Dai quando bloqueio no enable fields ficam 2 campos:
<input type="hidden" name="teste" id="teste" />
<input type="text" name="_teste" id="_teste" />