Autor | Zpráva | ||
---|---|---|---|
Magnus123 Profil |
#1 · Zasláno: 8. 7. 2012, 14:44:47
Ahoj.
Mohl by mi někdo vysvětlit, proč mi tohle nefunguje? Přesněji mi to nefunguje až u "throw result.error". Proměnné mám deklarované všechny (v závislosti na jazyku). function register() { var default_submit_button_value = $("#submit_register").val(); var data = { "name": $("#name").val(), "password": $("#password").val(), "repeat_password": $("#repeat_password").val(), "email": $("#email").val(), "control": $("#control").val() }; $("#submit_register").attr("disabled", "disabled").addClass("disabled"); try { if (data.name == "") { throw name_not_filled; } if (data.password == "") { throw password_not_filled; } if (data.repeat_password == "") { throw repeat_password_not_filled; } if (data.email == "") { throw email_not_filled; } if (data.control == "") { throw control_not_filled; } if (data.name.length < 3) { throw name_too_short; } if (data.name.length > 20) { throw name_too_long; } if (data.password !== data.repeat_password) { throw password_mismatch; } if (parseInt(data.control) !== 5) { throw control_bad; } $.post("?page=registerUser", data, function(output) { var result = eval("(" + output + ")"); if (result.error != "") { throw result.error; } $("#name").val(""); $("#password").val(""); $("#repeat_password").val(""); $("#email").val(""); $("#control").val(""); $("#submit_register").val(default_submit_button_value).attr("disabled", "").removeClass("disabled"); $("#result").html(result.callback.message); }); } catch (e) { alert(e); $("#submit_register").val(default_submit_button_value).attr("disabled", "").removeClass("disabled"); } } |
||
Chris Brown Profil * |
#2 · Zasláno: 8. 7. 2012, 15:19:14
a co ti zobrazuje firebug ako response? nemas tam nahodou 404 alebo nieco take?
|
||
Magnus123 Profil |
#3 · Zasláno: 8. 7. 2012, 15:32:32
Píše mi to "uncaught". Když to "throw result.error" hodím do dalšího try bloku, tak to jde, ale nevím, jak udělat, aby to přeskočilo na blok catch dole.
|
||
Chris Brown Profil * |
#4 · Zasláno: 8. 7. 2012, 15:38:42
JS je OK, podla vsetkeho je nejaka chyba na strane servera
|
||
Chamurappi Profil |
#5 · Zasláno: 8. 7. 2012, 16:34:15
Reaguji na Magna123:
„nevím, jak udělat, aby to přeskočilo na blok catch dole“ Pokud vím, tak nijak. Celý try -catch je už v okamžiku, kdy přijde odpověď ze serveru, dávno zpracovaný.
Mimochodem používat systém výjimek k tomuto účelu mi přijde trošku divné. |
||
Magnus123 Profil |
#6 · Zasláno: 8. 7. 2012, 16:38:08
Chamurappi:
Díky. Jak bys jinak vyřešil to, aby se při nesplněné podmínce nezpracovával kód dál a spustila se jedna akce? Jde to i jinak, než vytvářet funkci? if (value == false) { akce(); return; } Takto budu muset do každé té podmínky psát tento kód a nepřijde mi to jako nejvhodnější řešení. |
||
Chamurappi Profil |
Reaguji na Magna123:
„aby se při nesplněné podmínce nezpracovával kód dál“ Dal bych ho do else . Co se ti nelíbí na konstrukci if - else if - else if - ... - else if - else ?
Proč se vůbec snažíš o to, aby se nezpracovával další kód? Nevím, jak ty, ale já z pohledu uživatele docela nesnáším, když mě formulář bombarduje chybovými hláškami po jedné. Proč neprovedeš všechny kontroly (možná až na tu AJAXovou) a nenahlásíš všechny chyby naráz? |
||
Časová prodleva: 12 let
|
0