Parâmetro e evento blur em campo do tipo "zoom"

Pessoal,

Estou precisando realizar algumas validações após selecionar um item em um zoom mas não gostaria de fazer dentro da função setSelectedZoomItem. Tentei utilizar o evento "blur" e "change" mas não funcionou.


$("#nmCliente").on('blur', function () { ....
$("#nmCliente").on('change', function (e) { ....

Sabem me dizer como posso resolver isso? E também precisava passar um parâmetro (constraint) para o dataset customizado que estou utilizando neste zoom, mas não encontrei nenhuma propriedade para fazer. É possível fazer?

Muito obrigado. Abrs.

Marcos, pq você não quer utilizar o setSelectedZoomItem?

Olá Marcos,

Esses são os eventos suportados pelo campo ZOOM para a versão 1.5.X


fluig.autocomplete.cursorchanged 
fluig.autocomplete.opened 
fluig.autocomplete.closed 
fluig.autocomplete.selected 
fluig.autocomplete.filterd 
fluig.autocomplete.beforeItemAdd
fluig.autocomplete.itemAdded 
fluig.autocomplete.beforeItemUpdate 
fluig.autocomplete.itemUpdated 
fluig.autocomplete.beforeItemRemove 
fluig.autocomplete.itemRemoved 
fluig.autocomplete.maxTags 
fluig.autocomplete.focus 
fluig.autocomplete.blur 
fluig.autocomplete.loadComplete

A chamada deve ser da seguinte forma:


$("#nmCliente").on('fluig.autocomplete.blur ', function () {...});

Vale lembrar que para funcionar a declaração do evento deve ser realizada após o carregamento do campo, que ocorre no ready, logo deverá ser realizada na chamada:


$(window).load(function(){...});

Se for uma tabela paixfilho, deverá ser chamada a cada inserção de linha e passar o name ou atributo para a função.

Se a versão do Fluig for 1.6.X, poderá utilizar a documentação do link abaixo, pois não consegui utilizar esses eventos acima. Documentação Select2

Espero ter ajudado. Abraços

Bom dia Marcos, tudo bem?

Este exemplo que você passou é para o autocomplete, estou utilizando campo type=“zoom” e os parâmetros no “data-zoom”.
De qualquer forma muito obrigado pelo exemplo.

Abrs.

Pode utilizar que dá certo. No script de zoom que é implementado no cabeçalho do formulário estão contidos todos esses eventos, sendo diferente do filter.
Eu utilizo para zoom esses eentos e funciona corretamente.

Tentei utilizar

	`$(window).load(function(){

		$("#nmCliente").on('fluig.autocomplete.itemAdded', function () {
			alert();
		});			

	});`

Mas não deu certo. Esqueci de algo?

Qual a versão do seu Fluig, Marcos? Está correto.
Você está linkando o css e js do filter no seu formulário?

A versão é a 1.6.1.
Sim, os dois estão adicionados:

Então Marcos, a partir da versão 1.6.x não consegui fazer esses eventos funcionar. Porém consegui fazer funcionar de acordo com o link que disponibilizei acima. A TOTVS utilizou a biblioteca Select2 para reconstruir o zoom e desta forma os eventos disponibilizados nessa biblioteca, funciona para o zoom. Eu testei e funcionou aqui na versão 1.6.x

Estranho porque eu tentei estes também. No load:

		$("#nmCliente").on('change', function (e) {
			alert();
		});			

		$("#nmCliente").on('change.select2', function (e) {
			alert();
		});		


		$("#nmCliente").on('change', function (e) {
			alert();
		});			

		$("#nmCliente").on('change', function (e) {
			alert();
		});

Tente assim:
$(window).load(function(){ $(“#nmCliente”).on(‘change.select2’, function () { alert(); }); });

Nada, já estou desistindo. rsrs

Marcos, impossível isso. Hahahah
Compartilha comigo o seu código par poder te ajudar, pode ser?

Marcos@ecp.org.br

Manda o código do seu formulário e js.

@Marcos, tente dessa forma:


$(window).on('change', "#nmCliente", function () { 
	alert(); 
});

@Marcos, acertando minha resposta. No lugar de window é document


$(document).on('change', "#nmCliente", function () { 
    alert(); 
});

Bom dia @Gabriel. Essa segunda forma funcionou! Muito obrigado!

@Marcos,

Complementando a resposta do @Marcos Michalski, tente utilizar esse código:


$(document).on('change', "#nmCliente", function () { 
    alert(); 
});