Setfocus e colocar campo a zero

(Herberto Silva) #1

Nesta rotina em AjaxEvents, nif_onchange
sc_lookup(c,“SELECT nif, nome, morada, freguesia, codpostal, telefone, email
FROM municipes WHERE nif = ‘{nif}’”);

if(!empty({c})){
{nome} = {c[0][1]};
{morada} = {c[0][2]};
{freguesia} = {c[0][3]};
{codpostal} = {c[0][4]};
{telefone} = {c[0][5]};
{email} = {c[0][6]};

//sc_set_focus(“Endereço”);
}else {

document.F1.nif.value==0;
sc_ajax_message(“Contribuinte INVÁLIDO. Efectue o registo.”,“ATENÇÃO:”,“modal=N&button=Y&button_label=Ok&show_close=N&timeout=5”);
sc_set_focus({nif});

}

Pretendo que, desde que não exista esse NIF o sistema não permita que o utilizador salte do campo NIF sem digitar um NIF correcto, assim,
TENTO COLOCAR o valor do campo NIF a zero e manter o focus nele mas não está a funcionar, salta-me para o campo seguinte (NOME) , mantendo o valor do NIF mesmo errado impresso no campo. Alguma sugestão?

(George Carvalho) #2

Corriga: document.F1.nif.value==0;
para: document.F1.nif.value=0;

(Herberto Silva) #3

alterando o == para apenas =

com esta alteração obtenho o seguinte erro:
Parse error: parse error in D:\wamp\www\scriptcase\app\reqonline\form_pedecontentor\form_pedecontentor_apl.php on line 3658

(George Carvalho) #4

Desculpa, não tinha prestado atenção, você está misturando Ajax com Javascript

if(!empty({c})){
{nome} = {c[0][1]};
{morada} = {c[0][2]};
{freguesia} = {c[0][3]};
{codpostal} = {c[0][4]};
{telefone} = {c[0][5]};
{email} = {c[0][6]};

//sc_set_focus(“Endereço”);
}else {
{nif} = 0;
sc_ajax_message(“Contribuinte INVÁLIDO. Efectue o registo.”,“ATENÇÃO:”,“modal=N&button=Y&button_label=Ok&show_close=N&timeout=5”);sc_set_focus({nif});
}

E no manual do SC consta que a macro sc_ajax_message não funciona neste evento

(George Carvalho) #5

Testei e a macro funciona, falha do manual.

(Herberto Silva) #6

OBRIGADA pela dica
No meu caso alterei
{nif} = “”; // E FUNCIONA

sc_ajax_message(“Contribuinte INVÁLIDO. Efectue o registo.”,“ATENÇÃO:”,“modal=N&button=Y&button_label=Ok&show_close=N&timeout=5”);sc_set_focus({nif});

MAS:
sc_set_focus({nif}); não funciona…

(George Carvalho) #7

Tente sc_set_focus(‘nif’);

(Herberto Silva) #8

ASSIM FUNCIONA. Fico agradecido…