Ha mindenképpen hiperkorrekt megoldást keresünk (és JS-t is használjagtunk a nem esszenciális részekhez), még1 ötlet: minden <input class="stylebutton ..." value="{val}"> elemet kicserélünk <a class="stylebutton ..." onclick="{js value és sumbit}">{val}</a> -ra.
Úgy gondoltam, a forrásban az első (azaz <input type="submit" class="stylebutton ...">) lenne. Ezután, ha van rendes JS, akkor DOM manipulációval szépen átlakítani. Az átalakítás után már egy weblakalmazásról van szó, nem egy egyszerű formról, ahol nem lehet JS-sel való submit kivetni való...
Lehet úgy is, de nem látom értelmét JS-ből linkké alakítani egy buttont, amit enélkül is szépen meg lehet formázni, szemantikus marad a kód, nem kell a DOM-ot piszkálni, js nélkül is működik a form, működik az enter gombra történő submit... Szóval nem látom mit nyernénk a linkké alakítással?
a cikkben is hivatkozott rediscovering the button element c. cikkben (blogmark is volt) látható, hogy nagyon szépen lehet formázni a button elemet is (mondjuk az ikonokat én háttérképként alkalmaztam volna nem img elemként).
persze nem tudom, hogy minden böngészőben tényleg ennyire szép-e (most megnéztem win alatt ie6/ff/opera/safari böngészőkben és igen), de ha mindenképpen le akarjuk cserélni, akkor miért nem span elemet használunk? ez valami beidegződés, hogy mindig linket használunk? :) a különbség csak annyi, hogy css-ből meg kell változtatni az egérmutatót a span fölött, cserébe nem kell szívni azzal, hogy megakadályozzuk a link onclick eseményének lefutását. vagy van más, amit kihagytam a számításból?
Egyrészt azért A, mert az IE6 csak így támogatja a hovert (a csávó egy jqueryt berántott csak a hover emuláció miatt :) Másrészt meg ha submit, akkor nem kell foglalkozzunk az alapértelmezett viselkedés törlésével (legalábbis most így tűnik logikusnak).
nahát, a hover tényleg nem jutott eszembe :), mondjuk ha már ja app, akkor nem csak emiatt lesz berántva az a jquery. ;)
a másikat nem értem, hogy ha az a elem submit, akkor miért nem kell foglalkozni az alapértelmezett viselkedéssel? főleg, ha ajax submit?
szerk: egyébként a submit elemre nem feltétlenül kell hover. az submit típusú inputtal vagy buttonnal sem tudsz mit kezdeni ie6 alatt.
Úgy értettem, ha onclickben nyomunk egy form.submit()-ot, akkor úgysem fog lefutni, bárhova is mutasson a link. (És hozzátettem, hogy csak 80%ban vagyok biztos)...
Valódi URL-re mutató link valóban übereli a folymaatban lévő submitot, viszont ha a link egy belső hivatkozás (itt egyszerűen csak egy #) akkor már nem kell aggódni. Nem mintha egy "return false;" odaírása akkora pluszmunka lenne az onclick végére..
Js plasztika
Álmoskönyvek szerint
Forrás
Háát..
a helyett button vagy span
persze nem tudom, hogy minden böngészőben tényleg ennyire szép-e (most megnéztem win alatt ie6/ff/opera/safari böngészőkben és igen), de ha mindenképpen le akarjuk cserélni, akkor miért nem span elemet használunk? ez valami beidegződés, hogy mindig linket használunk? :) a különbség csak annyi, hogy css-ből meg kell változtatni az egérmutatót a span fölött, cserébe nem kell szívni azzal, hogy megakadályozzuk a link onclick eseményének lefutását. vagy van más, amit kihagytam a számításból?
hover
és tényleg a hover
a másikat nem értem, hogy ha az a elem submit, akkor miért nem kell foglalkozni az alapértelmezett viselkedéssel? főleg, ha ajax submit?
szerk: egyébként a submit elemre nem feltétlenül kell hover. az submit típusú inputtal vagy buttonnal sem tudsz mit kezdeni ie6 alatt.
amire gondoltam:
én fordítva tippelem
igen is meg nem is...
Teszteve: Safari, FF, Opera