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
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 *
Tlačítko pro odeslání se mi zobrazi v jiném divu nez je vlastní formulář. Očekávám odeslaní dat.
_es
Profil
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 *
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
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
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 *
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 *
_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
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')
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
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
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 *
_es:
metuda valid() je popsana zde Odkaz

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:

0