Autor Zpráva
tomikl
Profil *
Ahjote, potreboval by som pomoct
mam spraveny formular, ale nechce mi ho odoslat. ide o povinne udaje vo formulari.

Formular:
<table border="0" >
        <form action="send2.php" method="post" name="frm1"  onsubmit="return validate(this)">
        
        <td colspan="2"><strong>Objednávka</strong><br>
        <br><p>    <? $row = split(";", $basket);
                   for ($i = 0;$i<sizeof($row)-1;$i++)
                    {
                        echo($row[$i]);
                        echo("<br>");
                    }
                ?>
            </p>
         </td>
        
        <!--Meno-->
         <tr class="txt"><tr class="txt">
            <td width="100">Meno a priezvisko/Názov firmy:</td>
            <td ><input type="text" name="meno" class="t1" id="meno"   >&nbsp *</td>
         </tr><!--Meno-->    
             
         <!--Mesto-->       
         <tr class="txt">     
             <td width="100" height="5">Mesto:</td>
              <td><input type="text" name="mesto" class="t1">&nbsp *</td>
           </tr> <!--Mesto-->
           
         <!--Ulica-->
         <tr class="txt">     
            <td width="100">Ulica:</td>
              <td><input type="text" name="ulica" class="t1">&nbsp *</td>
           </tr><!--Ulica-->
            
         <!--PSČ-->
         <tr class="txt">     
            <td width="100">PSČ:</td>
              <td><input type="text" name="psc" class="t1">&nbsp *</td>
           </tr><!--PSČ-->
             
         <!--Tel-->
           <tr class="txt">
             <td width="150">Telefónne číslo:</td>
            <td><input type="text" name="tel" class="t1" vspace="fgdfgE"  ></td>
         </tr><!--Tel-->
             
         <!--Email--> 
         <tr class="txt">
            <td width="150">Email:</td>
              <td><input type="text" name="email" class="t1"></td>
           </tr><!--Email-->
               
         <!--IČO-->
         <tr class="txt">
            <td width="150">IČO:</td>
              <td><input type="text" name="ico" class="t1"></td>
           </tr><!--IČO-->
            
         <!--IČ DPH-->
         <tr class="txt">
            <td width="150">IČ DPH:</td>
              <td><input type="text" name="icdph" class="t1"></td>
           </tr><!--IČ DPH-->
            
         <!--Poznamka--> 
         <tr class="txt">
            <td width="150" colspan="2">Poznámka:</td>
         </tr>
             
         <tr class="txt" >
              <td colspan="2"><textarea name="text" rows="7" cols="30"></textarea></td>
         </tr>    
         
             <table>                 
                   <tr class="txt">
                
                <td align="center"  class="txt"><a href="javascript:val();" >Pokračovať v objednávke</a></td> 
                   </tr>
             </table>     
                  
                 
        </form>
</table>

A toto je javascript.js, v ktorom mam funkciu a podmienku
function val(){
    var meno = document.getElementById('meno');
    var mesto = document.getElementById('mesto');
    var ulica = document.getElementById('ulica');
    var psc = document.getElementById('psc');
    if (document.meno&&document.mesto)
    {
    alert ("Nezadali ste vsetkz udaje");    
    }
}

Nechce mi to volbec odoslat. Neviete niekto poradit? dakujem
panther
Profil
tomikl:
1. nikde není nic o tom, že bych se formulář měl odeslat. Chybí input typu submit nebo button, odkaz nemá atribut href vedoucí někam, resp. ve scriptu není nic o tom, že se s formulářem má něco dít.

2. podmínka na 6. řádku je nesmysl, jednou „document“ už máš v proměnné, kontroluj tedy pouze if (meno && mesto)

3. tato podmínka projde vždy, kdy pole existují. Pravděpodobně chceš kontrolovat jejich hodnoty, tedy document.getElementById('meno').value

4. PSČ musí mít nějaký formát, nestačí pouze kontrolovat vyplnění/nevyplnění hodnoty. Kromě toho, JS se dá vypnout, kontrola musí proběhnout i na serveru.
tomikl
Profil *
panther
no ved formular sa ma odoslat cez <form action="send2.php" method="post" name="frm1" onsubmit="return validate(this)">
ci nie?
a atribut href je dany:
<a href="javascript:val();" >Pokračovať v objednávke</a>
len neviem ako to sravit v jscripte
vedel by si mi s tym nejak poradit?
panther
Profil
tomikl:
onsubmit jsem přehlédl. Co máš špatně ve funkci val(), jsem ti naznačil. Jak vypadá funkce validate, kterou jsi nám neukázal, nevtuším.

Ale platí to, co jsem napsal - nikde formulář neodesíláš. Čím myslíš, že vyvoláš událost onsubmit, když v kódu žádný input submit/image nebo button nemáš? Odkazem formulář také nedosíláš, ani jím nikam nepřecházíš - pouze kontroluješ (resp. snažíš se kontrolovat) zadané hodnoty ve formuláři.
tomikl
Profil *
panther:
vedel by si mi poradit ako to napisat do jscript?
panther
Profil
tomikl:
<form action="send2.php" method="post" name="frm1">
...
</form>
<script>
function val(){
    var meno = document.getElementById('meno').value;
    ...

    if (meno) { //dalsi podminky, resp. dalsi pole
      document.forms['frm1'].submit();
    } else {
      alert ('chybi meno')
    }
}
</script>

Všechno jsem ti napsal už v minulých příspěvcích, stačilo trochu vlastní snahy.

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: