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
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');
}
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