Autor | Zpráva | ||
---|---|---|---|
volda Profil * |
Neví někdo jak sprovoznit formulář.
Formulář je vytvořen ajaxem. Po validaci se odesle - ok. Když <input type=submit... nahradim javascriptem formulář nemá tendenci nic odesílat. Raději zdroj. kod - takto je to dost nesrozumitlné. <form id='brows' name='brows' method='post' enctype='multipart/form-data' action='./akce.php' onsubmit='return uloz_dph()'> <table> <tr><td>Popisek</td><td><input id='text' name='text' size='50' maxlength='50'></td></tr> <tr><td>Sazba DPH</td><td><input id='dph' name='dph' size='5' maxlength='5'></td></tr> <tr><td><input type='submit' value='Uložit' /></td></tr> ted to chodí - nahradim-li v javascriptu kodem: var pom="<input type='submit' class='butt_default' value='Uložit' />"; $("#sign_butts").html(pom); nic se nedeje </table>\ </form> <script> function uloz_dph(){ alert('test'); if($("#brows").valid()){ $("#brows").ajaxForm({ target: "#table_boxik", success: function() { $.ajax({ type: "POST", data: "f=ci_dph&action=spod_okno&id="+$('#id').attr('value'), url: "./akce.php", cache: false, success: function( msg){ $("#cis").html(msg); } }); } }); return false; } } $(document).ready(function(){ $("#brows").validate({ rules: { text: { required: true }, dph: { required: true, number: true } } }); }); </script> Dík za kazdou radu Moderátor Chamurappi: Vkládej prosím kódy mezi značky [>pre] a [>/pre] (stačí kliknout na ).
|
||
_es Profil |
#2 · Zasláno: 18. 6. 2011, 16:11:43 · Upravil/a: _es
volda:
> var pom="<input type='submit' class='butt_default' value='Uložit' />"; > $("#sign_butts").html(pom); O čo sa týmto pokúšaš? Čo čakáš, že tento kód spraví? |
||
volda Profil * |
#3 · Zasláno: 18. 6. 2011, 21:23:01
Tlačítko pro odeslání se mi zobrazi v jiném divu nez je vlastní formulář. Očekávám odeslaní dat.
|
||
_es Profil |
#4 · Zasláno: 20. 6. 2011, 09:02:48
volda:
„Očekávám odeslaní dat.“ Prečo by malo pridanie nejakého tlačítka vo formulári, a to ešte takýmto divným spôsobom, spôsobiť odoslanie nejakých dát? Nejako nie je vôbec jasný účel toho celého. |
||
volda Profil * |
#5 · Zasláno: 20. 6. 2011, 12:50:15
trochu jsem pokročil. zjistil jsem, že po vložení
$(document).ready(function(){ var pom="<input type='button' class='butt_default' onclick='javascript:$("#brows").submit()' value='Uložit' />"; $("#sign_butts").html(pom); } se mi provede validace i odeslaní dat (testik se vypíše), chyba nastává v target a nasledne v success - vracená data se nechovaj jako ajax ale jako klasicky odesilany formulář <script> function uloz_dph(){ if($("#brows").valid()){ $("#brows").ajaxForm({ target: "#table_boxik", beforeSubmit:alert('testik'), success: function() { alert('uspech'), $.ajax({ type: "POST", data: "f=ci_dph&action=spod_okno&id="+$('#id').attr('value'), url: "./akce.php", cache: false, success: function( msg){ $("#cis").html(msg); } }); } }); return false; } } |
||
_es Profil |
#6 · Zasláno: 20. 6. 2011, 13:18:41
volda:
Na čo sa tam pokúšaš cez JS nejako vkladať odosielacie tlačítko? To nevieš už na začiatku, či ti je alebo nie je treba? „vracená data se nechovaj jako ajax“ Dáta sú len dáta. Ako ajaxovito by sa mali tie dáta správať? Formuluj zrozumiteľne a dostatočne o čo sa pokúšaš a čo ti nejde. Napríklad nie je zrejmé, čo by mala robiť v tvojom kóde funkcia $ . Síce je dosť pravdepodobné, že ide o použitie jQuery knižnice, no to, aby bol bol dotaz zrozumiteľný a s dostatkom informácií by si mal zabezpečiť ty.
|
||
pcmanik Profil |
#7 · Zasláno: 20. 6. 2011, 14:49:04 · Upravil/a: pcmanik
volda:
Mas element, ktory ma id nastavene ako id="id"? To je zle riesenie, samotne jQuery to musi mat osetrene, lebo to sposobuje problemy. Preto by si si to mal zmenit. Radsej nam sem hod tu funkciu valid co volas. V jQuery taka neexistuje, a ak ju nemas nikde definovanu, moze to sposobovat problemy. |
||
volda Profil * |
#8 · Zasláno: 21. 6. 2011, 08:42:18
pcmanik:
pro validaci používám jquery.validate.js Vlastní text je níže a mám odskoušeno, že se provede ok. $(document).ready(function(){ $("#brows").validate({ rules: { text: { required: true }, dph: { required: true, number: true } } }); }); </script> |
||
volda Profil * |
#9 · Zasláno: 21. 6. 2011, 09:09:56
_es:
nevím předem kde budu odesílací tlačíko, to se mi generuje až po volbě přes ajax pokusim se nastínit strukturu stránky mám vygeneovan kod <div id="table_boxik"> zobrazí se tabulka, která se aktualizuje ajaxem </div> <div id="sign_butts"> tady vyypisuji buttny s možností obsluhy (edituj, ulož...) realizuju po načtení divu "cis" </div> <div id='cis'> vlastní formulář (přes ajax) bez input submit (je generovan js do "sign_butts") </div> <!-- cis --> vlastní kod nebudu znova opisovat, je již výše, snad jen za pomoci jquery vyplnim var pom="<input type='button' class='butt_default' onclick='javascript:$("#brows").submit()' value='Uložit' />"; $("#sign_butts").html(pom); to mi formulář odešle ale ajaxForm mi nezobrazí výsledek v požadovaném divu fc odesílající data: function uloz_dph(){ if($("#brows").valid()){ $("#brows").ajaxForm({ target: "#table_boxik", beforeSubmit:alert('TOTO SE UKÁŽE'), success: function() { alert('A TOTO SE UŽ NEUKÁŽE'), $.ajax({ type: "POST", data: "f=ci_dph&action=spod_okno&id="+$('#id').attr('value'), url: "./akce.php", cache: false, success: function( msg){ $("#cis").html(msg); } }); } }); return false; } } snad jsem se už vymáč jasně |
||
_es Profil |
#10 · Zasláno: 21. 6. 2011, 10:31:02 · Upravil/a: _es
volda:
„nevím předem kde budu odesílací tlačíko, to se mi generuje až po volbě přes ajax“ Ale veď to nedáva zmysel. Na čo je tlačítko vygenerované po odoslaní dát? „beforeSubmit:alert('TOTO SE UKÁŽE'),“ Tento kód je nezmyselný. Určite prídeš na to prečo, aj sám. „$('#id').attr('value')“ Už pcmanik sa ťa pýtal: To tam máš element s id="id" ?
Čo by mala robiť metóda valid ?
Metódu s takým názvom som v dokumentácii jQuery nenašiel. Skús spraviť živú ukážku, možno ti potom poradí niekto, kto jQuery používa. |
||
Chamurappi Profil |
#11 · Zasláno: 21. 6. 2011, 11:21:04
Reaguji na voldu:
„zjistil jsem, že po vložení […] se mi provede validace i odeslaní dat (testik se vypíše)“ „snad jen za pomoci jquery vyplnim“ V tom kódu nastavujícím hodnotu proměnné pom je zjevná syntaktická chyba, na kterou tady krásně upozorňuje zvýrazňovač kódu. Nemůže to fungovat.
Reaguji na _es: „Tento kód je nezmyselný. Určite prídeš na to prečo, aj sám.“ Vzhledem k tomu, že callback beforeSubmit se pravděpodobně tak jako tak volá prakticky hned, tak na to přijít nemusí.
|
||
_es Profil |
#12 · Zasláno: 21. 6. 2011, 11:39:34
Chamurappi:
„V tom kódu nastavujícím hodnotu proměnné pom je zjevná syntaktická chyba“ Ale až v tých posledných verziách kódu, v [#1] to je v poriadku. |
||
volda Profil * |
#13 · Zasláno: 21. 6. 2011, 13:22:01
_es:
metuda valid() je popsana zde Odkaz |
||
Časová prodleva: 13 let
|
0