Autor Zpráva
Onecar
Profil
Zdravím,

mám tenhle script
<script language="javascript" type="text/javascript">

function zkontroluj() {
kontrola=window.confirm('Chcete pokračovat?');
}
</script>


<form>

<input type="password" name="pwd" id="pwd" size="22" /><br />
<textarea type="text" cols="40" rows="7" name="joke" id="joke">The joke</textarea><br />
<input type="submit" name="send" id="send" value="Send the joke" onClick="zkontroluj()" />
</form>


Teď bych však potřeboval, aby po stisknutí Storno (tedy navrácení FALSE) se nic nedělo, a naopak aby po stisknutí OK došlo k odeslání dat.

Nevíte prosím jak na to?
quinux
Profil
Onecar
Reaguj tak, že to storno odstraň. Je tam zbytečné a jen dochází k tomu, že si ho uživatel zmáčkne nechtěně a tak přijde o vše co vyplnil. Mnohdy pak odchází aniž by vyplňování zopakoval, takže pokud je to nějaký objednávkový formulář, přicházíš o zákazníky.
Dero
Profil
<script language="javascript" type="text/javascript">


function zkontroluj() {
return window.confirm('Chcete pokračovat?');
}

</script>

<form>
<input type="password" name="pwd" id="pwd" size="22" /><br />
<textarea type="text" cols="40" rows="7" name="joke" id="joke">The joke</textarea><br />
<input type="submit" name="send" id="send" value="Send the joke" onClick="return zkontroluj();" />
</form>
Michalek
Profil

<script language="javascript" type="text/javascript">
function zkontroluj() {

kontrola=window.confirm('Chcete pokračovat?');
if(kontrola==true) {
return true;
}
else {
return false;
}
}
</script>

<form onsubmit="return zkontroluj()">
<input type="password" name="pwd" id="pwd" size="22" /><br />
<textarea type="text" cols="40" rows="7" name="joke" id="joke">The joke</textarea><br />
<input type="submit" name="send" id="send" value="Send the joke" />
</form>


asi :)

// No tohle, tolik odpovědí než to sesmolím...
// Ale řekl bych, že když bude return vázaný na input jak navrhuje Dero, nebude to fungovat; myslím.
Dero
Profil
Michalek: To bude fungovat, ale těžkopádně a se zbytečným kódem. Dovolím si doporučit spíše tu moji metodu.
Dero
Profil
// Ale řekl bych, že když bude return vázaný na input jak navrhuje Dero, nebude to fungovat; myslím.

Ale bude.
Michalek
Profil
Dero: Ok, zkusil jsem a máš pravdu. Ale žiu v přesvědčení, že mi to někde nefungovalo. Jinak čistota kódu jasně, nechal jsem se zmást tím "kontrola="
Onecar
Profil
Moc moc moc díky, Derův kód funguje báječně :-). JavaScript se učím 3 dny, ale prostě jsem nevěděl jak figure it out. Díky moc za ochotu a skvělý servis :-).
Onecar
Profil
P.S.: Původně jsem měl napsaný silně podobný kód jako Michalek, ale nevěděl jsem, že do onClick mám dopsat ještě return. Mohli byste mi to prosím vysvětlit, proč tam je napsán?
Michalek
Profil
http://www.jakpsatweb.cz/javascript/formular-zruseni.html

Yuhů: "Důležité je všimnout si, že funkce má návratové hodnoty (return něco). Jinak řečeno funkce plive pravdu nebo nepravdu."
Dero
Profil
Dero: Ok, zkusil jsem a máš pravdu. Ale žiu v přesvědčení, že mi to někde nefungovalo. Jinak čistota kódu jasně, nechal jsem se zmást tím "kontrola="

Jj, chápu, co Tě zmátlo.

Jinak bych řekl, že jde o velmi bezpečnou konstrukci, která by měla fungovat opravdu v každém alespoň trochu použitelném parseru JS.
venca12
Profil
Můžeš zkusit použít i tohle

<input type="submit" name="send" id="send" value="Send the joke" />

<script type="text/javascript">
document.getElementById('send').onclick = function() { return window.confirm('Chcete pokračovat?');}
</script>

Případně si ten skript vložit do externího souboru aby jsi neměl v kódu moc balastu. Blbě se v tom člověk pak vyzná, když má js, html a třeba ještě php a css v jednom souboru.
los
Profil *
Skôr by som zavesil obsluhu na submit formulára (ako to spravil Michalek), pretože keď je len na tlačidle, tak napr. v IE sa pri odosielaní formuláru pomocou enteru v input type=text udalosť click jednoducho nevyskytne.
<form action="" method="get" onsubmit="return confirm('really?')">

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


Atribút onclick sa nepíše s veľkým C.
Onecar
Profil
Vzhledem k tomu, že jsem konečně pochopil, jak zastavit provádění scriptu (return false;) jsem si napsal funkci svou, díky moc za rady a vesměs skvěle funkční scripty.

<script language="javascript" type="text/javascript">

function zkontroluj() {
kontrola = window.confirm ('Chcete pokračovat?');
if (kontrola) {
return true;
}
else {
return false;
}
}
</script>


<input type="submit" name="send" id="send" value="Send the joke" onClick="return zkontroluj()" />
habendorf
Profil
Nešlo by místo

if (kontrola) {
return true;
}
else {
return false;
}

napsat prostě

return (kontrola)

?
habendorf
Profil
Nebo ještě líp

return window.confirm('Chcete pokračovat?');

ale to už vlastně psal Dero :o)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0