Autor | Zpráva | ||
---|---|---|---|
pmg Profil * |
#1 · Zasláno: 20. 8. 2007, 17:43:19
Dobrý den, potřeboval bych poradit jak javascriptem nastavit událost onsubmit tak, aby se chovala, jako kdybych v HTML přidal onsubmit="return funkce();". Když funkce() vrátí false, aby se v odesílání nepokračovalo. Jde to? Díky.
|
||
pmg Profil * |
#2 · Zasláno: 20. 8. 2007, 18:25:16
Dobře, odpovím si tedy sám. Nechal jsem si hodnotu onsubmit vypsat a zde je řešení:
form.onsubmit=function() {return funkce(this)}; Do složených závorek lze v podstatě napsat hodnotu HTML parametru onsubmit. |
||
peta Profil |
#3 · Zasláno: 20. 8. 2007, 20:47:38
spolehlivejsi mozna new Function()
Zbytek kodu? Odkaz na stranku? Z tohoto se neda nic vycarovat. Mozna to v nejakem programu mam pouzite, ale bych musel hledat. form.onsubmit=function() {return funkce(this)}; mno, nevim nevim s tim this, co z toho bude... Kdyz delam objekt pres funkce, delam to takto: function aaa(a,b,c) { this.a = a; this.b = b; this.c = c; this.d = a*b; this.pocitej = function () {this.d+=this.b;} } x = new aaa(1,2,3); x.pocitej(); alert(x.d); |
||
ah01 Profil |
#4 · Zasláno: 20. 8. 2007, 20:53:01 · Upravil/a: ah01
peta
„spolehlivejsi mozna new Function() “ Proč? „mno, nevim nevim s tim this, co z toho bude... “ Jý myslím, že je to uplně jasný. form z toho bude. |
||
pmg Profil * |
#5 · Zasláno: 21. 8. 2007, 17:13:53
peta
spolehlivejsi mozna new Function() S použitím operátoru new je to jistě čistší. Zbytek kodu? Odkaz na stranku? Myslím, že v tomto případě by se vše jen zesložitilo, proto jsem se ptal jen obecně. ah01 Já myslím, že je to uplně jasný. form z toho (this) bude. Přidal jsem to až do odpovědi, abych naznačil, že to tak jde: this skutečně odkáže na form. Děkuji za odpovědi. Řeším nyní obdobný problém. S odkazy. Chtěl bych odchytávat kliknutí v dokumentu a zjistit, zda se kliklo na odkaz. Pokud by splnil určitá kritéria, provedla by se jiná akce, a odkaz by se neproklikl. Tentokrát i s kódem. document.onclick=function(e) Problém je opět stejný. Jiná akce se sice provede, ale odkaz se proklikne. |
||
pmg Profil * |
#6 · Zasláno: 21. 8. 2007, 19:36:24
Jak jsem zjistil, problém vězí v něčem jiném. Pokud za držení Ctrl kliknete na odkaz, otevře se standardně v nové záložce (Firefox). To je důvod, proč otevírání nelze zrušit.
Dále mě překvapilo, že detekci Ctrl lze provést na událost onclick, a to samé neplatí o keyCode, který se musí volat třeba na onkeydown (chtěl jsem kontrolovat jinou klávesu, aby nedošlo k uvedené kolizi s chováním prohlížeče). Neznám lepší způsob než si stav uložit do proměnné. Jsou takové složitosti opravdu nutné? var status; document.onkeydown=function(e) { e=(e||event); status=(e.keyCode==65); // status indikuje, zda je stisknuta klávesa a } |
||
Časová prodleva: 17 let
|
0