Autor Zpráva
iru
Profil
Provádím validaci formuláře, pokud je něco špatně, objeví se Alert a formulář se neodešle, ale bohužel v Mozille Firefox se sice Alert vyvolá, jenže místo aby měl uživatel možnost chybu opravit, formulář se odešle! Dělám někde chybu? Jde s tím něco udělat?

Tady je kód:

<script type="text/javascript">

<!--
//funkce nastavi barvu elementu Col
function SetCol(Element, Col) {
if (Element.style)
Element.style.backgroundColor = Col;
}

//Funkce pro kontrolu formulare
function CheckForm(Form) {
//barva spatne vyplneneho pole
var ColErr ="red";
//barva dobre vyplneneho pole (vychozi barva prvku)
var ColOK = "";
//priznak zda je formular v poradku
var Valid = true;

//kontrola data
if (Form.datum_od.value == ""){
//nastavi se priznak
Valid = false;
//zvyrazni se prvek
SetCol(Form.datum_od, ColErr);
} else {
SetCol(Form.datum_od, ColOK);
}


//hlaska pokud je neco spatne vyplneno
if (!Valid)
alert("Rezervace nemůže být odeslána, nevybrali jste datum rezervace.");

//test, zda je formular pripraven na odeslani
return Valid;
}
//-->
</script>


echo('<form name="main" OnSubmit="return CheckForm(this)" action="rezervace.php" method="get" target="_blank">
Datum: <input type="text" size="10" name="datum_od" /> <a href="kalendar.php?ev_cislo='.$ev_cislo.'&" onclick="return !window.open(this.href + 'transfer=datum_od', '', 'width=350, height=400');"> Vybrat</a> <br>

<input type="image" name="odeslat" value="Rezervace" src="obrazky_pujcovna/rezervace.jpg">
</form>');


peta
Profil
echo(' ... tohle mne vicemene nevzrusuje, posli odkaz na stranku.
Otazka je, co tam mas vygenerovane a jakou chybu FF napise v JS konzoli.

A nebo si muzu zkusit ten priklad prevest do souboru, jenze, ja to tam prevedu spravne a ty hledas chybu :) A navic jsem linej, ze jo.

Jinak to vypada, ze je to oki, na prvni pohled.
iru
Profil
tady je odkaz na stránku: http://www.web-nyrany.cz/web/pujcovna-dvd/index.php?obsah=detail&id_fi lmu=522

díky...
iru
Profil
A ještě bych se při této příležitosti chtěla zeptat na jednu věc: Když mám odkaz (např. na další stránku kde se něco smaže), jak udělat, aby měl uživatel na výběr, zda opravdu chce na další stránku přejít.... Díky.
centi
Profil
iru
Po chvílke testovania som našiel zdroj problému. Je ním chýbajúca funkcia HideDialog(), na ktorú sa odkazuješ v <body onfocus="HideDialog()"> a ktorá sa zavolá vždy keď stránka dostane focus. Focus dostane aj vtedy, ak zatvoríš alert() okno a vrátiš sa k stránke.
Teda vždy po odklepnutí alertu s chybovou hláškou sa zavolala neexistujúca funkcia HideDialog() a preto sa funkcia CheckForm() ďalej ani nevykonávala a teda nikdy sa nerozhodla, či má vrátit True alebo False a preto sa formulár odoslal vždy.
Stačí teda vyhodiť z body tagu spomínané volanie funkcie HideDialog() a problém by mal zmiznúť.

2. Tvoj druhý problém sa rieši jednoducho využitím návratovej hodnoty funkcie confirm(), ktorá užívateľovi zobrazí nejaký text a vracia True alebo False podľa toho či užívateľ stlačí Ok alebo Cancel tlačítko.

<a href="delete.php" onclick="return confirm('Chces to zmazať?');">Zmazať</a>
iru
Profil
centi Díky, moc mi pomohlo to vysvětlění:-)

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