Bom dia, gostaria de saber se no fluig tem alguma opção de autoComplete para quando a pessoa digita. Exemplo; gravar o que ela digitou anteriormente, ai nao precisa digitar novamente tudo de novo
Tentei usando o codigo abaixo, mas ele pega os nomes dos usuarios, em vez de pegar o que o usuario digitou anteriormente no formulario
jQuery(function($){ //$(function(){
var source = [];
var campos = ["colleagueName", "mail"];
var dataset = DatasetFactory.getDataset("colleague", campos, null, null);
for (var i = 0; i < dataset.values.length; i++) {
var cod = dataset.values[i].colleagueName;
source.push(cod.toString()); }
var myAutocomplete = FLUIGC.autocomplete('#idBancoR', {
source: substringMatcher(source),
name: "nomes",
displayKey: "description",
highlight: !0,
type: "autocomplete" });
});
function substringMatcher(strs) {
return function findMatches(q, cb) {
var matches, substrRegex;
matches = [];
substrRegex = new RegExp(q, 'i');
$.each(strs, function(i, str) {
if (substrRegex.test(str)) {
matches.push({
description: str });
}
});
cb(matches);
};
}
Já tentou especificar na tag form o atributo autocomplete="on" ? É um atributo do HTML5 que acredito que possa te ajudar.
Ola Gustavo, tentei isso ai e não deu certo, tem que usar alguma biblioteca do jquery?
O que consegui foi isso aqui…
jQuery(function($){
var states = [
‘BANCO DO BRASIL’, ‘BANCO DO NORDESTE’
]
var myAutocomplete = FLUIGC.autocomplete('#idBancoR, #idContaR', {
source: substringMatcher(states),
name: 'cities',
displayKey: 'description',
tagClass: 'tag-gray',
type: 'tagAutocomplete'
});
});
O que eu falei só funciona a partir do momento que o usuário já digitou um dos valores. Digamos que ele digitou BANCO DO BRASIL em algum momento no campo, a partir dos próximos ele vai autocompletar com BANCO DO BRASIL. Se o que você quer está relacionado a um dataset específico, aí só utilizando o autocomplete. Caso os valores sejam fixos no entanto você pode utilizar o atributo data-list do HTML5 em um campo de combo.
Veja: W3Schools Tryit Editor
eu queria que o usuario digitasse algo (ex; Banco do Brasil) e na proxima vez que ele iniciasse uma solicitação, quando começar a digitar a mesma coisa, ex; ba ai ja mostrasse Banco do Brasil como opção para preencher o campo.
Mas neste caso o autocomplete=“on” da tag form deveria funcionar corretamente. Está utilizando que navegador?
usei o chrome, deixei assim < form name=“form” role=“form” autocomplete=“on” >
e nao deu certo na versao 1.6 do fluig
Bom, fiz um teste em local, o que acontece é que como o fluig não submete o próprio form, o HTML em si não reconhece que aquele campo foi submetido, porém ele é recuperado corretamente se o campo for editado.
Faz o seguinte teste
com um formulário simples com um unico campo com a tag form com autocomplete=“on” insira um registro de formulário pelo GED mesmo.
Depois edite este registro, pressione editar e não faça mais nada, apenas feche.
Se você for inserir um segundo registro de formulário, o campo do primeiro aparece para autocompletar.
Acredito que seu problema está na lista de comparações do seu String Macher, estou passando um exmplo que fiz e funciona.
Criação do autocomplete
var autoComplete = FLUIGC.autocomplete(id, {
source: substringMatcher(getItens()),
minLength: 3,
maxTags: 1,
tagMaxWidth: 200,
displayKey: 'nome',
tagClass: 'tag-gray',
type: 'tagAutocomplete'
});
Método para preenchimento:
function substringMatcher(list) {
return function findMatches(q, cb) {
var matches = [], substrRegex = new RegExp(q, 'i');
$.each(list, function(i, item) {
if (substrRegex.test(item.colleagueName) || substrRegex.test(item.login)) {
matches.push({
id: item.login,
nome: item.login +" - "+ item.colleagueName
});
}
});
cb(matches);
};
}
Método para carregamento dos registros do autocomplete:
function getItens() {
var ds = DatasetFactory.getDataset("colleague", null, null, null);
return ds.values;
}
No código específicado foi criado um autocomplete com uma função de source, a qual realiza o string macher para o auto complete. Esse string macher será preenchido com os valores que a função getItens() retornar (Precisa ser um retorno JSON como os valores de um DataSet). Para a exibição/busca será mostrado o conteúdo do parametro nome no string macher.