Autor Zpráva
Ben
Profil *
Ahoj,
potřebuju poradit proč mi nefunguje tlačítko na odeslání formuláře v IE9, když na něj kliknu myší(když odenteruji, tak se formulář odešle)

<script language="javascript">
<!--

function checkForm() {
  if(document.vlozit.lang.value == ""){
    alert("Vyplň pole jazyk!");
    document.vlozit.lang.focus();
    return false;
  }
}
// -->
</script>	      
  
<p>* - Povinné údaje</p>
<form name="vlozit"  action="<?php $_SERVER['PHP_SELF'] ?>" method="post" enctype="multipart/form-data" onSubmit="return checkForm();">

<table>
 
 <tr>
  <td colspan="2">
   <select name="lang">
    <option value="">Vyber jazyk...*</option>
    <option value="cs" <?php if(!isset($send)){echo $lang==cs ? "selected" : "";}?>>CS</option>
    <option value="en" <?php if(!isset($send)){echo $lang==en ? "selected" : "";}?>>EN</option>
    <option value="pl" <?php if(!isset($send)){echo $lang==pl ? "selected" : "";}?>>PL</option>
   </select> 
  </td>
 </tr>
 ...
 
 <tr>
  <td><input type="submit" name="ok" value="Uložit"></td>
 </tr>
</table>  
</form>
 
Louka
Profil
Protože funkce checkForm() vrací stále hodnotu false, kterou předává formuláři. A jelikož ten má tím pádem v onsubmit="return false;", tak se neodešle.

EDIT: Jsem blbej, nevšiml jsem si IF, omlouvám se a jdu se stydět :).
candiess
Profil
Louka:
svým způsobem máš pravdu, jen to neví co to vrátit.. ja bych tam dal
function checkForm() {
  if(document.vlozit.lang.value == ""){
    alert("Vyplň pole jazyk!");
    document.vlozit.lang.focus();
    return false;
  } else {
  return true;
  }
}

Ben:
a co takhle <script type="text/javascript"> ..???
Louka
Profil
candiess:
Musel jsem běžet, tak sem to nekoumal. Ano, když podmínka neprojde, tak funkce nevrátí true, takže se to neodešle, tvoje řešení je asi OK.
_es
Profil
Ben:
proč mi nefunguje tlačítko na odeslání formuláře v IE9

V iných prehliadačoch to ide?
Ak funkcia nevráti nič, tak je to to isté, ako keby vrátila undefined.
No pri vrátení hocijakej inej hodnoty ako false by k odoslaniu malo dôjsť.
Chyba bude asi inde, najskôr v hodnote vlastnosti value toho <select>u.
Použi namiesto toho vlastnosť value vybraného elementu <option>.
Ben
Profil *
Oki, děkuju za radu. nefungovalo to jen v IE9, nechápu proč. Vče funguje jak má, po úpravách od candiess. Díky moc :)
_es
Profil
Ben:
nefungovalo to jen v IE9, nechápu proč. Vče funguje jak má, po úpravách od candiess.
Otestoval si, aj po úpravách, či to funguje v IE6, IE7, IE8, aj v iných rozšírenejších prehliadačoch?
Lepšie by bolo pristupovať k vybranej položke <select>u cez vlastnosti options, selectedIndex a vlastnosti value až elementu option.

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