Validare un campo
Regole del forum
Nel forum è vietato fare pubblicità senza avere l'autorizzazione dello staf di Netspecial.
Nel forum è vietato fare pubblicità senza avere l'autorizzazione dello staf di Netspecial.
Re: Validare un campo
prova a chiamare la funzione sc_set_focus , ma non l'ho mai provata in un evento ajax quindi non so se farà quello che ci si aspetta.
Altrimenti, devi fare una funzione JavaScript che mette il focus sul campo voluto, quindi una sola riga di codice tipo $('#idcampo').focus(); , e chiamarla nell'evento ajax con la funzione sc_ajax_javascript, che è espressamente citata essere richiamabile nell'evento ajaxFieldonBlur di una form.
Re: Validare un campo
Grazie,
ti confermo che sc_set_focus in questo caso non funziona.
Per l'altro metodo, ti confesso che ho poca esperienza o quasi niente con javascript; quindi non ho idea di come andrebbe scritto il codice, se posso inserirlo in una libreria comune di funzioni e se posso chiamarla nell'evento ajax che ho creato per quel determinato campo.
Mi spiego con un esempio; poniamo che il mio form serva per gestire una anagrafica (tabella) impiegati e che in questa anagrafica vi sia un campo 'login' che vado a validare con un evento ajax onBlur come questo e che funziona:
Il problema è che dopo aver dato l'OK il focus passa al campo successivo, mentre vorrei che ritornasse al campo non valido.
A questo punto posso usare la funzione nell'evento? E potresti aiutarmi con un esempio di codice?
Grazie e ciao
ti confermo che sc_set_focus in questo caso non funziona.
Per l'altro metodo, ti confesso che ho poca esperienza o quasi niente con javascript; quindi non ho idea di come andrebbe scritto il codice, se posso inserirlo in una libreria comune di funzioni e se posso chiamarla nell'evento ajax che ho creato per quel determinato campo.
Mi spiego con un esempio; poniamo che il mio form serva per gestire una anagrafica (tabella) impiegati e che in questa anagrafica vi sia un campo 'login' che vado a validare con un evento ajax onBlur come questo e che funziona:
Codice: Seleziona tutto
$login={fld_login};
$sql_command =
"select fld_login from tb_users where fld_login = '{fld_login}'";
sc_lookup(ds_user, $sql_command);
if ({ds_user} != false)
{
$params = array(
'title' => "Attenzione",
'type' => "error",
'width' => '350px',
'confirmButtonText' => 'OK');
$desc="La login inserita: ".$login." "."esiste già";
sc_alert($desc, $params);
//eventuale funzione focus
} else {
$params = array(
'title' => "Attenzione",
'type' => "error",
'width' => '350px',
'confirmButtonText' => 'OK');
$desc="Questo campo non può essere vuoto!";
sc_alert($desc, $params);
//eventuale funzione focus
}
A questo punto posso usare la funzione nell'evento? E potresti aiutarmi con un esempio di codice?
Grazie e ciao
Re: Validare un campo
Io farei così, terrei codice PHP e JS separati, fai i controlli in PHP e poi passi il messaggio di errore ad una funzione JS, e la chiami con sc_ajax_javascript, dentro quella funzione con solo codice JS mostri il messaggio di errore e metti il focus, purtroppo è da fare in JS.
Re: Validare un campo
Vediamo allora se ho capito gli step:
Ciao e grazie ancora.
- Da Programmazione-->Metodi Javascript-->Inclusione di metodo creo un nuovo metodo che chiamo ad esempio focus_return.
- In questo metodo inserisco la riga $('#idcampo').focus(); e salvo
- Questo metodo può essere richiamato con sc_ajax_javascript.
Ciao e grazie ancora.
Re: Validare un campo
mettiamo che il tuo campo nel form di SC si chiami login.nico_gae ha scritto: 02 mag 2020, 14:13 Ma idcampo cosa è? Un indice e in tal caso come lo trovo? Oppure è semplicemente il nome del campo?
Ciao e grazie ancora.
Quando SC genera il codice HTML della pagina crea un oggetto INPUT per far inserire il login, questo oggetto input ha l'attributo id che si chiama id_sc_field_login. Quindi in jquery il codice $('#id_sc_field_login).focus(); mette il focus al campo di login.
Idem per tutti gli altri campi... genera il codice del form, ed eseguilo, poi guarda il codice HTML e vedrai i vari INPUT con ognuno il proprio ID.
Re: Validare un campo
Grazie per il chiarimento
Trovato l'ID e provato, ma non funziona.
Cioè, se chiamo la funzione nell'evento ajax in questo modo
Il focus passa comunque al campo successivo.
Nel sorgente html la funzione risulta
Ho il sospetto che non riuscirò a risolvere questa questione.
Trovato l'ID e provato, ma non funziona.
Cioè, se chiamo la funzione nell'evento ajax in questo modo
Codice: Seleziona tutto
$desc="La login inserita: ".$login." "."esiste già";
sc_alert($desc, $params);
sc_ajax_javascript('focus_return');
Nel sorgente html la funzione risulta
Codice: Seleziona tutto
function focus_return() {
$('#id_sc_field_fld_login').focus()
} // focus_return
Ho il sospetto che non riuscirò a risolvere questa questione.
Re: Validare un campo
Ciao Vincenzo,
Ho ripreso in mano il mio piccolo progetto ed ho cercato di capire un pò meglio come funzionano questi controlli JS.
Faccio un pò di chiarezza ed in primo luogo posto il contenuto dell'evento ajax onBlur
Questo evento dovrebbe verificare soprattutto che il campo fld_login non sia vuoto o esista già.
La funzione JS focus_login contiene la sola riga $('#id_sc_field_fld_login').focus();
Se compilo il form e lo eseguo, i controlli vengono effettuati correttamente, ma il focus passa sempre al campo successivo.
Ho provato, a questo punto, a togliere l'alert e a lasciare solo la funzione del focus; a questo punto funziona correttamente e il focus ritorna al campo fld_login.
Hai qualche idea su questo comportamento?
Grazie e scusami per il disturbo
Ho ripreso in mano il mio piccolo progetto ed ho cercato di capire un pò meglio come funzionano questi controlli JS.
Faccio un pò di chiarezza ed in primo luogo posto il contenuto dell'evento ajax onBlur
Codice: Seleziona tutto
$sql_command =
"select fld_login, fld_usrname from tb_users where fld_login = '{fld_login}'";
sc_lookup(ds_user, $sql_command);
if ({ds_user} === false)
{
$params = array(
'title' => "Attenzione",
'type' => "error",
'width' => '350px',
'confirmButtonText' => 'OK');
$desc="Access error. Message=". {my_data_erro};
sc_alert($desc, $params);
}
elseif (empty({ds_user}))
{
$params = array(
'title' => "Attenzione",
'type' => "error",
'width' => '350px',
'confirmButtonText' => 'OK');
$desc={lang_warning_empty};
sc_alert($desc, $params);
sc_ajax_javascript('focus_login');
}
else
{
$v_login = {ds_user[0][0]};
$v_usrname={ds_user[0][1]};
$params = array(
'title' => "Attenzione",
'type' => "error",
'width' => '350px',
'confirmButtonText' => 'OK');
$desc={lang_warning_login}."<br><b>".$v_usrname."</b>";
sc_alert($desc, $params);
sc_ajax_javascript('focus_login');
}
La funzione JS focus_login contiene la sola riga $('#id_sc_field_fld_login').focus();
Se compilo il form e lo eseguo, i controlli vengono effettuati correttamente, ma il focus passa sempre al campo successivo.
Ho provato, a questo punto, a togliere l'alert e a lasciare solo la funzione del focus; a questo punto funziona correttamente e il focus ritorna al campo fld_login.
Hai qualche idea su questo comportamento?
Grazie e scusami per il disturbo
Re: Validare un campo
Secondo me si incarta, giustamente, fra codice PHP (eseguito sul server) e JS (eseguito nel browser).
Secondo me devi chiamare la funzione sc_ajax_javascript('focus_login'); a cui passi ANCHE i parametri del messaggio che vuoi mostrare.
Dentro la funzione, chiami il codice JS per mostrare il messaggio e poi il set focus, così dovrebbe fare entrambi.
Secondo me devi chiamare la funzione sc_ajax_javascript('focus_login'); a cui passi ANCHE i parametri del messaggio che vuoi mostrare.
Dentro la funzione, chiami il codice JS per mostrare il messaggio e poi il set focus, così dovrebbe fare entrambi.
Chi c’è in linea
Visitano il forum: Ahrefs [Bot] e 4 ospiti