Eu gostaria de usar onchange do campo em questão, não a onvalidate, pois o campo sofreu alteração com a digitação, como é em qualquer outro campo.
Legal, isso ajuda a tornar o SC mais produtivo com versatilidade e liberdade de código.
quer uma dica mais simples? ou espera que a gente implemente isso no sc? é gambi :-p
pq na verdade eu respondo … como usuario da ferramenta. o que posso responder pra ajudar voces. se preferirem tiro o nome “administrador”, me cadastro com outro nome e ai posso responder de igual pra igual. Pq minhas respostas nao sao “da” empresa, to tentando dar um help por fora.
Bom, vou falar assim mesmo pq sou curioso.
O nome do meu form é: form_public_adm_clientes
O nome do meu campo é: cidade
criei um evento ajax no onchange da cidade.
fui na ajuda do campo cidade, informei o tipo de help texto e digitei o seguinte codigo:
<input type=“button” value=“Cadastrar” onclick=“document.F1.cidade.value=document.F1.cidade_autocomp.value; do_ajax_form_public_adm_clientes_event_cidade_onchange()”;
Ou seja, do lado do autocomplete colocou um botao cadastrar, que vai atribuir o digitado a cidade e chamar o change … e ai vc programa normal … se existe n faz nada, se n existir cadastra no banco e da uma mensagem cadastrado com sucesso …
Sua ajuda é de extrema importância para todos, por favor não se omita.
E sua sugestão aqui pode valer para muitos, inclusive eu possa vir a utilizar em algum dos meus diversos casos, mas aceite também as nossas opiniões a respeito de determinados assuntos, não podemos só ficar no paliativo, essa é uma questão antiga e posto aqui o retorno do suporte:
Prezado Haroldo,
atualmente não há como fazer isso. O campo tipo auto-complete hoje é feito para facilitar o preenchimento dos dados de forma que se for digitado um valor e ele não for encontrado/selecionado, o campo retorna nulo.
Atenciosamente,
Victor Pessoa
Netmake Soluções em Informática
Esta solicitação refiz a 3 meses, a primeira solicitação para alteração deste tipo de campo eu fiz no início de 2007, pois como todo resultado de suporte não atendido, a resposta é a mesma:
Enviaremos como sugestão para o Departamento de Desenvolvimento.
viu a outra dica?
Para um dos casos essa sugestão é muito boa, valeu Diogo.
** Nem sempre vou querer que ação seja do usuário, poderei desejar fazer isso internamente, e nem sempre será uma inserção no banco, poderá ser apenas uma validação do valor digitado.
dessa forma permite q o usuario na ponta decida se qr cadastrar ou nao.
com isso vc pode programar normalmente no evento ajax.
foi o melhor que achei, com menos alteração de codigo :-p
Sim, vi sim. Vou deixar o código aqui guardado.
Mas mesmo assim, não deixa de sugerir novamente essa implementação, para podermos usar normalmente o PHP dentro do envento onchange do campo.
Programação JavaScript, costumam sofrer com atualizações de versões do SC.
Sua dedicação é extremamente estimulante em nossos debates, obrigado mesmo.
A conversa sobre esse tipo de campo é muito interessante.
Eu particularmente acho a idéia desse tipo de campo excelente, mas o uso dele se tornou inviável justamente por não podermos tratar o valor digitado, e esse campo é enganador para usuário final, vejam uma situação que passei:
No meu site resolvi criar o formulário de contatos em SC, para ter um melhor controle de quem visitava meu site, e qual o perfil deste usuário, e atribui justamente ao campo cidade (obrigatório), a propriedade auto-complete, depois de uma semana tive que trocar rapidamente para combo select este campo, porque?
Vejam bem: O formulário estava na internet, o que causava as vezes uma demora significativa para montar a lista de opções auto-complete, e o usuário, não sabendo que tinha que esperar aparecer uma lista para selecionar a cidade (afinal o campo esta ali com a janela aberta para se digitar algo), o mesmo digitava o nome de sua cidade por completo (sem selecionar na lista pois esta ainda não tinha se apresentado, só que não é possível validar o que foi digitado, causando erro de cidade inválida. Choveram emails para nós a respeito, e aparentemente isso se tornava um bug da nossa tela de cadastro de contatos.
Por isso parei de usar esse tipo de campo, e substituí todos que já usava por combo. Infelizmente o campo auto-complete, apesar de eu achar uma solução inteligente de janela para digitação, não é viável, por esse pequeno detalhe de não permitir interagir na onchange com seu valor digitado.
Com certeza, vou tentar trazer esse problema pra cima.
O ideal … ja q eh um campo ajax, seria: ao usuario entrar no campo e comecar a digitar, aparecer alguma bolinha do ajax rodando … ou algo do tipo pro usuario saber que algo vai ser exibido … como funciona os eventos normais ajax.
Isso mesmo… seria o maximo, vi bastante isso em sites que usam ajax… seria o “ideal”…vlw cara
Eu tentei (com minhas limitações) fazer um campo bairro_new e passar o que fosse digitado no campo bairro_autocomplete (ajax) via on_change para ele. mais minha surpresa foi, se eu capturar, ele passa para o campo o valor capturado, se eu digitar, é como seu eu não tivesse digitado nada. Assim, se eu tivesse digitado, faria uma atualização para pegar o bairro_new e passar os valores para o autocomplete. mais, sem chance alguem conseguiu mais algo
Como fazer para em um campo textoautocomplet (ajax) eu capturar um texto e se eu quiser tirar o valor capturado, eu consiga (onde esse mesmo campo está LABEL) ???
Se no icone CAPTURA TEXTO eu digitar algo e capturar, ele faz tranquilo. Se eu deleter o que ele capturou, não tenho nada para mandar tirar o que ele capturou no campo LABEL.
Não sei se consegui explicar bem, mais quaisquer duvidas, estou por aqui… Fico no aguardo de resposta e agradeço mais uma vez a att…
estou com um problema que iniciou-se nesse topico:
Depois que migrei da versão SC4 para o SC5, na inclusão em um formulario, não consigo mais passar o valor de um campo {id_cliente} que é NUMERO AUTOCOMPLETE para um select de lookup de outro campo {bairro_final} que possui um lookup assim:
select id, destino
from adm_destinos
where id_empresa = ‘{id_cliente}’
OBS: isso ocorre somente na inclusão. Na alteração de formulario está OK.
Desse modo. eu fazia na versão 4 e parou de funcionar na 5:
a) eu entro em um formulario (novo)
b) tenho um campo {id_cliente} que é NumeroAutocomplet, preencho com o cliente
c) tenho outro campo que é {bairro_final} que é Text Automplete (COM CAPTURA TEXTO CLICADO, e tem um lookup com o seguinte select:
SELECT id, destino FROM adm_destinos WHERE (id_empresa = ‘{id_cliente}’}
O problema é que na versão SC4, na inclusão ele “pegava” o {id_cliente} corretamente neste where do select acima citado. Quando passei para a versão SC5, ele so pega na alteração, na inclusão não. (VEJO PELO MODO DEBUG)
RESUMINDO: na inclusão, Não consigo passar o valor do campo {id_cliente} para esse lookup do campo {bairro_final} e não mudei nada…so converti do SC4 para o SC5 e parou de funcionar
Rapaz … vou testar, mas acho que nao funciona na v4 nao.
Em modo de inclusão, o campo id_cliente ewsta vazio e nao tem valor, como o select “SELECT id, destino FROM adm_destinos WHERE (id_empresa = ‘{id_cliente}’}” sabe o id_cliente se voce nao mandou recarregar? So se ao digitar algo no campo id_cliente voce mandasse recarregar a apgina ou desse refresh, mas nao funciona nem na v4.
olá Diogo, blz ???!!!
Então brother, funcionava na 4, não sei por qual motivo… (até tinha pensado nisso, de um jeito ou de outro eu não estou tendo “recarga” da pagina, somente aquele “processando do ajax” pois o campo id_cliente tem um change para outros campos) mais funcionava (testa na SC4 pra voce ver). Fui para a SC5 e parou…
Pior que eu uso isso em varios locais, (tipo puxar o bairro do cliente que eu chame no campo id_cliente, entre outros campos que estão assim, se não tiver bairro, o cliente digita (por esse motivo não coloquei um campo SELECT no bairro, pra recarregar com ajax… Vê o que dá pra fazer ai, por favor blz ??? nem que seja o “modo correto” pois creio que estava funcionando na outra versão por um acaso mesmo… so me “lasquei” e vi isso, depois que migrei…
um grande abraço mano, sabendo de algo, dá um retorno pra nós…vlw
blz mano…segue link para dowload
http://www.4shared.com/file/2fQauh8U/captura_onchange.html
Ai estão o cadastro de os e as tabelas referentes. Como exemplo segue os passos abaixo:
a) Capture o Cliente CONVERPLAST
b) Após isso “chame” no campo {bairro} a letra A (EM MODO DEBUG VEM COM O ID DA CONVERPLAST)
c) Agora, troque pelo cliente DUCHASCORONA
d) Após isso “chame” no campo {bairro} a letra A (EM MODO DEBUG VEM COM O ID DA DUCHASCORONA e o bairro é AEROPORTO DE GUARULHOS que é referente aos destinos da DUCHASCORONA)
ou seja, isso comprova que o lookup com where {id_cliente} funcionava perfeitamente no SC4, com dois campos AJAX
Então tá ai…quaisquer novidades estou a disposição. Se alguem puder ajudar, agradeço muito…vlw
Ajudou muito amigo. Problema resolvido. Na versão 8 continua assim ou existe outra solução?