Autor Zpráva
nofate
Profil
Zdravim, neviete mi poradit ako spravne poukladat nasledujuci kod, aby sa formular odoslal iba vtedy, ked uzivatel potvrdi java skriptovu otazku (ak nepotvrdi, tak aby sa form neodoslal. proste nic) ?
Lebo teraz sa formular odosle aj ked kliknem "cancel" pri java skriptovej otazke.
 OnClick="javascript: { document.forms['dlt'].elements['soubor'].value = '11'; document.forms['dlt_pic'].submit(); return false; return confirm('Chcete pokracovat??'); }"

toto som mal doteraz a funguje:
 OnClick="javascript: { document.forms['dlt'].elements['soubor'].value = '11'; document.forms['dlt'].submit(); return false;  }"
... ale nemam tam to potvrdenie ci chce alebo nechce pokracovat: return confirm('Chcete pokracovat?');
Alphard
Profil
<form action="" onSubmit="return confirm ('Chcete pokračovat?')">
<input type="submit" value="Send">
</form>
nofate
Profil
ee. Ked som dal do <form> onSubmit="return confirm ('Chcete pokračovat?')"
tak po kliknuti na moj link
<a href="neco" onclick="javascript: { document.forms['dlt'].elements['soubor'].value = '11'; document.forms['dlt'].submit(); return false;  }"> odkaz </a>

sa formular odosle ale kontrolna otazka nenabehne.

Ale vdaka aj tak.
Nejake dalsie navrhy?
Petroff
Profil
<To: Alphard>
Ovladač onSubmit se spustí pouze při odeslání formuláře tlačítkem ODESLAT (popř. ENTER) v onom formuláři.
Odešleme-li formulář voláním metody submit() - což je tento případ - nedojde k volání onSubmit.
<ŘEŠENÍ>
<a href="#" onclick="document.forms['dlt'].elements['soubor'].value = '11';
if (confirm ('Chcete pokračovat?')) {document.forms['dlt'].submit()}; return false"> odkaz </a>

popripade
<a href="#" onclick="if (confirm ('Chcete pokračovat?')) {document.forms['dlt'].elements['soubor'].value = '11'; document.forms['dlt'].submit()}; return false"> odkaz </a>

Nepleť si použití javascriptu:
(A) jako kódu ovladače události, který se zadá jako hodnota atributu:
<a .... onsubmit="xxxx.value+='pridat';return funcY()">....</a>
tj.JS příkazy v uvozovkách
(B) s kódem jako součástí hodnoty atributu href,src...atd., kde se použije na místě adresy zápis s pseudoprotokolem javascript:
<a href="javascript:document.forms['xxx'].submit()">.....</a>

Je to chyba, kterou začátečníky v JS zmateš, a ono se to pak vesele rozšiřuje (nejsi zdaleka první u koho jsem se s tím setkal)
nofate
Profil
No super, dakujem. Zrejme si odbornik na JS.
Takze pri tomto:
<a href="#" onclick="if (confirm ('Chcete pokračovat?')) {document.forms['dlt'].elements['soubor'].value = '11'; document.forms['dlt'].submit()}; return false"> odkaz </a>
nema byt na zaciatku "javascript:"
A ked ho dam tak bude fungovat, ale preco to tam nema byt? A kedy to tam ma byt? Diky
Petroff
Profil
Prostě u všech ovladačů tj. onClick,onMouseover,onSubmit,onKeypress......atd. piš do uvozovek rovnou Javascriptový kód:
<xxx onYyyy="příkaz JS;příkaz JS;příkaz JS"> zzzz </xxx>

Kdyby sis chtel vyzkouset zpusob kde bez zadaní javascript: nedostaneš svuj vysledek:
<a href="#" onclick="alert('Funguje');return false">testuju kod v onclicku </a>
<a href="#" onclick="javascript:alert('Funguje');return false">nepouzivej kod v onclicku s javascript: navic </a>
<a href="javascript:alert('Funguje' )">testuju kod v href s pouzitim protokolu javascript: </a>
<a href="alert('Funguje' )">kod v href nefunguje bez pouziti javascript: </a>
Alphard
Profil
Petroff
Ovladač onSubmit se spustí pouze při odeslání formuláře tlačítkem ODESLAT...
já vím, můj příklad byl funkční a odesílal se pomocí Send (resp. enter), že form odesílá pomocí odkazu jsem nevěděl
nofate
měl jsem to přečíst pozorněji, omlouvám se
nofate
Profil
Petroff dakujem za vysvetlenie, uz mi je to jasne a budem sa podla toho riadit. ;-)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0