Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jefersonperrot

[Resolvido] Evento .live()

Recommended Posts

Boa tarde!

 

Preciso de uma mão com uma função Jquery, ela busca um termo no banco e exibe a info relacionada em select, até aí ok, perfeito... Porém preciso que ela desfaça (desmonte) o select quando apago as dados digitados.

 

O código JS é o seguinte:

$(".npt-filtro-processo").live('keyup', function(e){
	if(e.keyCode >= 48 && e.keyCode <= 105){
		var url = $('base').attr('href') + 'processos/getProcessos/',
			atual = $(this),
			filtro = atual.val();
		$.ajax({
			url: url,
			type: 'POST',
			data: "data[filtro]=" + filtro,
			dataType: 'json',
			success: function(data){
				var opcoes = '';
				$.each(data, function(valor, texto){
					opcoes += '<option value="' + valor + '">' + texto + '</option>';
				});
				atual.parent('div').prev('div').children('select').html(opcoes);
			}
		});
	}
});

O arquivo CakePHP (php) é o seguinte:

<div class="form-field clear">
			<?=$form->input('processo_id', array('label'=>array('class'=>'fl size-120', 'text'=>'Processo'), 'options'=>$processos, 'empty'=>'- Escolha um Processo', 'class'=>'fl size-400', 'div'=>array('class'=>'npt-filtro-processo')))?>
			<div class="fl ml-15">
				<label for="busca_processo" class="fl-space">Filtrar</label>
				<input type="text" id="busca_processo" class="npt-filtro-processo text fl size-200" />
			</div>
		</div>

 

Valeu!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

você pode usar a função remove()

Compartilhar este post


Link para o post
Compartilhar em outros sites

tentou assim:

$('select').find('option').remove();

?

 

Ou então assim, também funciona:

$('select').empty();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Willian, acho que não me expliquei direito... eu preciso que ele desfaça a ação, isso é, que desmonte o select que o jquery montou saca? Tipo um Ctrl+Z :D

 

Tem como?

 

E desde já valeu pelo empenho em me ajudar!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então uê, essas duas coisas que te passei fazem isso que você pediu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então uê, essas duas coisas que te passei fazem isso que você pediu.

 

E aí Wilian.

 

Compreendo q funciona, testei em outros códigos, mas nesse não ta funcionando, acredito que o problema é o fato que as opções do select estão vindo por um parâmetro setado no controller do CakePhp ($opcoes), portanto quando uso o remove() ou o emptu(), ele não consegue remontar a parada!

 

Mas valeu mesmo assim mano!

Grande abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

não, o fato de você usar cake ou não não tem nada a ver.

 

O que pode estar acontecendo, é que você não está conseguindo selecionar o elemento no dom corretamente.

Veja no console de erros se aparece algo. Ctrl+Shift+J no Firefox

Compartilhar este post


Link para o post
Compartilhar em outros sites

não, o fato de você usar cake ou não não tem nada a ver.

 

O que pode estar acontecendo, é que você não está conseguindo selecionar o elemento no dom corretamente.

Veja no console de erros se aparece algo. Ctrl+Shift+J no Firefox

 

Fala mano!

Deu certo, na verdade nem precisei daquelas alterações, bastou validar os keyCodes do Backspace e do Delete junto no if. Daí deu bom!

 

Valeu, gde abraço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.