Odeslání formuláře vygererovaného přes AJAX
- Honca
- Člen | 28
Zdravím,
mám následující problém a už si nevím rady..
Mám dva druhy formuláře, který přepínám Radiobuttonem. Defaultně
nastavený formulář se odešle v pořádku, ale když si překliknu na ten
druhý typ, vygeneruje se mi sice správně, ale po vyplnění a odeslání se
neodešlou data z toho nového, ale vypadá to, že tam někde drží furt ten
starý a chce po mně validaci toho původního.. a hlavně se vůbec po submitu
nedostane ani na callback, který má formulář nastavený při onSubmit..
pro odesílání používám jquery.ajaxform.js a formulář řeším přes komponentu..
díky za jakoukoliv radu, H.
- Honca
- Člen | 28
newPOPE napsal(a):
Napada ma vyrobit 2 formulare a len ich prepinat cez JS
No je pravda, ze ty formuláře tvořím podle hodnoty toho radiobuttonu.. mají totiž několik prvků společných a vždycky jen něco přidám nebo uberu právě podle toho typu.. právě ty dva formuláře bych chtěl řešit asi jako poslední možnost, když by se nepřišlo na lepší řešení :-)
- newPOPE
- Člen | 648
Este ma napadla moznost (ci to funguje netusim)
skusit to riesit tak, ze tie pravidla zavesis az ked form odosles,
nieco ako
<?php
if( $form['submit1']->isSubmittedBy() ) {
$form['input']->addRule(...);
}
?>
skor to ale asi fungovat nebude ;-)
A to, ze maju spol.. prvky by som mozno riesil metodou ktora pripravi to spolocne a v tovarnach by som len dohodil co potrebujem… a mam 2 formy kde na jednom mieste pripravim spolocne veci a tovarne ich odlisia
Editoval newPOPE (1. 8. 2010 11:22)
- Honca
- Člen | 28
No já si myslím, že v tomhle chyba nebude..
Teď to řeším tak, že poprvé se mi vygeneruje defaultní typ formuláře
(to je asi jasný :-) a to pak pracuje v pohodě.. když si přepnu na druhý
typ formuláře podle hodnoty toho radio, což mi dělá toto:
<script>
$(function()
{
// nastaví událost onchange pro radiobutton u reg. formulare
$("#frm-userForm-userForm input[type='radio']").live("change", function(event) {
$.get($.get("?do=userForm-reload", {"userForm-type": this.value})); // zahájí AJAXový požadavek
return false;
});
});
</script>
.. tak se formulář vygeneruje v pohodě, ale po vyplnění a odeslání se ani nespustí handler ani obsluha toho submit, ale snaží se vygenerovat ten původní formulář s tím, že mi i vyhodí chyby validačních pravidel toho původního formuláře.. někde je pešek a nevím kde :-(
- newPOPE
- Člen | 648
Aha uz mi je to jasne :-), som sa domotal sam sorry :-).
Tak tu je problem asi v tom ze po odoslani nevie ktory form bol odoslany pokial maju napr. tu istu action. za to sa snazi vygenerovat ten prvy (defaultny) a aj zvalidovat na tom to skape… (predpokladam)
A napada ma ze pokial je to cez tovarne tak asi nedosiahnes nejake riadenie
ktory form bol odoslany kedze je to ta ista action="..."
Asi by som fakt nahodil 2 tovarne :-)
- blacksun
- Člen | 177
A proč nevyužiješ metodu toggle()?
https://api.nette.org/…ca7a5b4.html
Generuje si javascriptové přepínání sama a určitě funguje i správně validace, tzn. u skrytých prvků se neuplatňují validační pravidla..