Autor Zpráva
Jack06
Profil
Dobré odopoledne, kód je následující:
html:
                         <form onsubmit="fRename(this)" class="reName fleft" action="" method="post">
                            <input type="hidden" name="left" value="' . $row->traverz_left . '">
                            <input type="text" name="name" value="' . $row->title . '">
                            <input type="submit" value="" class="submit">
                         </form>


js:
function fRename ( e ){ 
                $(this).submit(function(){      
                                      $.post("cza-admin/jsonform.php",{   
                                         left: $("input[name=left]", e).val(),
                                         name:  $("input[name=name]", e).val(),  
                                         rename: "true"}, function(data) { 
                              if(data.def == 1){   $("select[name=side_id]").load('get-function.php?get=options'); }
                                                   $("#showerr").html(data.msg).fadeIn(1500).fadeOut(1500);
                             }, 'json'); return false; 
                });
          } 


Při prvním kliknutí na submit se mi odešle jednou. při druhém dvakrát při třetím třikrát...

Je to udělané aby se to nerefreshovalo, ale čím vícekrát kliknu na odeslání, tím vícekrát se najednou provede submit formu. :-( Nevíce proč, či co s tím? Děkuji
Str4wberry
Profil
Co to tlačítko po kliknutí zablokovat?
Jack06
Profil
Str4wberry:
Nj, jenomže ono nejde o to že bych na to klikal naschvál vícekrát. Já tím měním název .
Změním název poprvé odešle se formulář jednou, chci ho změnit bez refreshe podruhé formulář se odešle dvakrát, atd.. To odesílání se pokaždé násobí a nevím proč :-(
Chamurappi
Profil
Reaguji na Jacka06:
Nedělá v jQuery metoda submit, kterou používáš, náhodou to, že přidá k formuláři zpracování události? Při každém onsubmitu přidáváš další onsubmit, ve kterém odesíláš data na server.
Jack06
Profil
Chamurappi:
A tak jak to mám udělat?

Jelikož se mi pole s formulářema dynamicky refreshuje bez refreshe stránky, tak to musím volat přímo z formuláře, ale jak teda napsat ten js? :-(
LuBoss
Profil *
Napriklad, ze odtial das prec to
$(this).submit(function(){

a nechas tu funkciu iba takto:
function fRename ( e ){ 
                   
                                      $.post("cza-admin/jsonform.php",{   
                                         left: $("input[name=left]", e).val(),
                                         name:  $("input[name=name]", e).val(),  
                                         rename: "true"}, function(data) { 
                              if(data.def == 1){   $("select[name=side_id]").load('get-function.php?get=options'); }
                                                   $("#showerr").html(data.msg).fadeIn(1500).fadeOut(1500);
                             }, 'json'); return false; 
                
          } 

alebo tam nedas do toho formulara
onsubmit="fRename(this)"
pridas tam
id="nejakeID"
a namiesto tej funkcie fRename tam das toto:
$(document).ready(function(){
 $("nejakeID").submit(function(){      
                                      $.post("cza-admin/jsonform.php",{   
                                         left: $("input[name=left]", e).val(),
                                         name:  $("input[name=name]", e).val(),  
                                         rename: "true"}, function(data) { 
                              if(data.def == 1){   $("select[name=side_id]").load('get-function.php?get=options'); }
                                                   $("#showerr").html(data.msg).fadeIn(1500).fadeOut(1500);
                             }, 'json'); return false; 
                });
}
Jack06
Profil
LuBoss:
Ten druhý způsob nejde protože refreshuju ty formuláře.. dynamicky je přenačítám protože přibývají a mažou se podle potřeby uživatele, a aby se vždy nerefreshovala stránka, tak se vždy refreshne jen seznam s těmi formuláři.

a nevím proč, tohle jsem udělal:
function fRename ( e ){ 
                   
                                      $.post("cza-admin/jsonform.php",{   
                                         left: $("input[name=left]", e).val(),
                                         name:  $("input[name=name]", e).val(),  
                                         rename: "true"}, function(data) { 
                              if(data.def == 1){   $("select[name=side_id]").load('get-function.php?get=options'); }
                                                   $("#showerr").html(data.msg).fadeIn(1500).fadeOut(1500);
                             }, 'json'); return false; 
                
          } 

a hlásí mi to že soubor jsonform.php neexistuje a když se podívám tak mi to hodí nějaký load ajax.
ve chvíli kdy tam zase to sumit přidám, tak to funguje a nechápu proč..

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: