Pagina 1 din 1
Return false la onsubmit cu ajax
Scris: Joi Apr 14, 2016
de andras
Salut,
Cum pun return false; ca rezultat al unui ajax? Am un <form onsubmit="return existaanluna('."'".$tabela."'".')"> iar in functia respectiva am pus ajax (simplificat):
Cod: Selectaţi tot
<script>
success : function(msg) { // msg este rezultatul verificarii in BD. Daca lungimea msg>0 trebuie return false
if (msg.length>0) {
alert(msg);
return false;
}
}
</script>
dar nu functioneaza corect, afiseaza alert dar face si submit, nu ia in considerare retun false. Multumesc.
Return false la onsubmit cu ajax
Scris: Joi Apr 14, 2016
de MarPlo
Salut
Return false adaugat la "success" in ajax nu are efect deoarece codul de la "success" se executa cu intarziere, dupa ce e primit si procesat raspunsul de la server. Pana atunci, nu exista "return false", prin urmare javascript continua codul ca si cum nu e nici un "false".
Incearca sa pui "return false" direct in functia ta ajax, dupa "succeess", cam asa:
Cod: Selectaţi tot
function existaanluna(param){
//codul tau pt ajax..
success : function(msg){
alert(msg);
}
return false;
}
Return false la onsubmit cu ajax
Scris: Joi Apr 14, 2016
de andras
Oriunde o pun in alta parte fie imi da eroare si functia ajax nu se executa, fie returneaza tot timpul false si nu face submit. Ma gindesc sa fac un artificiu, sa pun rezultatul (msg) intr-un hidden iar la iesire din functia JS sa ciesc aceasta valoare din hideen.
edit: asa functioneaza, cu artificiu in hidden. La intrarea in functia ajax initializez valoarea hidden la sir vid, iar rezultatul din ajax il pun tot in acest hidden. Multumesc oricum.
Return false la onsubmit cu ajax
Scris: Joi Apr 14, 2016
de MarPlo
Se poate si astfel, daca gasesti ca ar fi mai simplu; sa aplici submit-ul din javascrpt /ajax.
Functia ajax sa returneze false, iar la "success" aplici submit() la acel form cand vrei.
Cod: Selectaţi tot
function existaanluna(param){
//codul tau pt ajax..
success : function(msg){
if(msg.length>0) alert(msg);
else document.getElementById('id_form').submit();
}
return false;
}