Autor Zpráva
sslavo
Profil
Prosim poradte dakto ako by ste riesili overovanie vyplnenia vstupnych poli vo formulary?
Jan Tvrdík
Profil
Tohle je hodně osekaná verze toho, jak jsem to řešil já:

<form action="nekam.php" name="formular" onSubmit="return zkontroluj(formular);" method="post">

<input type="text" name="pole">
<input type="submit">
</form>

<script language="JavaScript" type="text/javascript" >
function zkontroluj(form){
if(form.pole.value == ""){
form.pole.focus();
return false;
}else {
form.submit();
}
}
</script>
Michal Škrabálek
Profil
V prvé řadě nespoléhat pouze na JS a kontrolovat to ještě znovu v PHP. Jinak lze v JS i PHP kontrolovat pomocí regulérních výrazů prakticky cokoliv. Správný odkaz, email, minimální a maximální délku, atdatd... Ukázka Honzy Tvrdíka napoví. Nezapomeňte však jistit to ještě v PHP, protože JS kontrolu je velmi jednoduché obejít.
sslavo
Profil
jj dik
sslavo
Profil
ale nejak mi to nechce fakcit mozes mi poslat neosekanu verziu
pls.
Jan Tvrdík
Profil
ale nejak mi to nechce fakcit

Funguje to normálně (Firefox 1.5.0.3, IE7 beta2).

možná by bylo dobrý ještě doplnit alert, aby uživatel věděl co se děje:

(...)
form.pole.focus();

alert("Pole není vyplněno");
return false;
(...)
Jestli chceš neosekanou, tak klidně:

<!doctype html public "-//w3c//dtd html 4.01 transitional//en">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250">
<meta http-equiv="content-language" content="cs">
<link type="text/css" rel="StyleSheet" href="styly/standart.css">
<style>
#okraj {border: 1px solid DodgerBlue; background-color: LightCyan; color: Navy}
#tlacitko {background-color: DeepSkyBlue; color: Navy; font-weight: bold; cursor: hand}
.1 {width: 202px}
.2 {position: relative; left: 3px}
body {color: Navy}
</style>
</head>
<body>

<div id="hlavni">

<div id="obsah">
<h1>Kontakt</h1>

<hr color="navy">

<form action="zpracovani.php" name="aaa" onSubmit="return zkontroluj(aaa);" method="post">
Komu:&nbsp;&nbsp;&nbsp;
<select name="komu" size="1" id="okraj" class="1 2"> s
<option value="xxx@xxx.cz"> Jaroslavovi
<option value="j.tvr@centrum.cz">Webmastrovi
</select>
<br>
Váš mail: <input type="text" name="mail_odesilatele" id="okraj" class="1"><br>
Předmět: <input type="text" name="predmet" id="okraj" class="1" style="position: relative; left: 1px"><br>
Zpráva: <br><textarea name="zprava" cols="30" rows="5" id="okraj"></textarea><br>
<input type=submit value="Odeslat" id="tlacitko">

</form>
<script language="JavaScript" type="text/javascript" >
function zkontroluj(form){
var odeslat = "jo";
var problemy = "Email nemohl být odeslán z následujících důvodů:\n";
if(form.zprava.value == ""){
problemy += "Zpráva je prázdná\n";
odeslat = "ne";
form.zprava.focus();
}if (form.mail_odesilatele.value != ""){
if (form.mail_odesilatele.value.indexOf('@')==-1 || form.mail_odesilatele.value.indexOf('.')==-1){
problemy += "Vaše emailová adresa není platná";
odeslat = "ne";
form.mail_odesilatele.focus();
}
}
if(odeslat == "jo" && form.predmet.value == ""){
dotaz = confirm("Předmět není vyplněn.\nMá se email přesto odeslat?");
if(!dotaz){
form.predmet.focus();
odeslat = "ne";}
}
if(problemy.length > 60){alert(problemy)}
if(odeslat == "ne"){
return false;
}else {
form.submit();
}
}

</script>

</div>



<div id="hlavicka">
<?php include "hlavicka.html" ?>
</div>



<div id="levemenu">
<?php include "menu.html" ?>
</div>

<div id="pravemenu">
<?php include "anketa1.html" ?>
</div>

</div>
</body>
</html>

sslavo
Profil
njn ddik
Toto téma je uzamčeno. Odpověď nelze zaslat.