Autor | Zpráva | ||
---|---|---|---|
Sislik Profil |
#1 · Zasláno: 1. 8. 2010, 14:19:05
Chtěl jsem na stránce využít nových možností HTML5 ve formulářích v podobě
<input type="number" min="1" max="1000" step="0.1" /> <input type="text"> Pro snažší testování jsem použil TryIt Editor jen jsem formulář modifikoval: <input type="number" name="points" min="1" max="1000" step="0.1" /> na vstup: 458.9 prohlížeče reagují takto: Opera: OK Safari: neodešle Chrome: neodešle IE a FF všude odesílají jako text vstup: 4.3 Opera: OK Safari: OK Chrome: OK vstup: 40.1 Opera: OK Safari: OK Chrome: OK vstup: 40.9 Opera: OK Safari: neodešle Chrome: neodešle chvíli jsem Googlil a našel jsem, že pro Safari doporučují: <input type="number" name="points" min="1" max="1000" step="any" /> a pak to začalo fungovat i v Safari, jenže v Opeře mi při klikání na šipečky čísla skáčí po celých jednotkách a ne po desetinných částech, čož se mi jednak líbí a přijde mi to užitečné a funguje to třeba i v Opera Mobile takže má otázka zní, jestli jste se s tímto někdo už setkal a jak to vyřešit, aby to fungovalo i v Safari děkuji |
||
Amunak Profil |
#2 · Zasláno: 1. 8. 2010, 22:08:32
Sislik:
Napadá mě, že problém je v prohlížečích v tom, že ty máš max=1000, ale zadáváš 458.9 - to je siceméně než tisíc, ale otázka je, jestli si to myslí i prohlížeč (podle mě ne). Pokud to bere jako 4589 tak je jasné, proč se to neodešle. Řešení je tedy používat kroky po jedné. Ale jak na Safari, to bohužel neporadím. Ale určitě by se dalo pro prohlížeče co to nepodporují generovat jiný kód, prostě jen type=text. |
||
Sislik Profil |
#3 · Zasláno: 2. 8. 2010, 10:49:24
diky, ale tím to nebude, Safari/Chrome nevezmou ani 40.9 (ale třeba 40.1 vezmou)
pokud nastavim kroky po 1, tak zase nezadam desetinný číslo, protože to by bylo menší než jeden krok (stejný, jako když se zadá krok 1000, tak nejde zadat číslo 12500, ale jen 12000 nebo 13000 - to funguje v Opeře a Safari/Chrome naprosto identicky), to je už lepší step="any", ale pak nebudou fungovat ty šipečky, jak jsem psal v prvním příspěvku vtip je v tom, ze Safari/Chrome type="number" podporují, ale buď v tom mají chybu oni nebo já něco dělam špatně, možná jim to zadam do bugzilly a uvidíme, jestli to označí za chybu nebo za vlastnost :) dát tam něco ve smyslu IF (browser == "webkit") THEN ... mě už taky napadlo, ale tomu se chci vyvarovat, protože prohlížeče, co type="number" nepodporujou, tak to interpretujou jako type="text" automaticky a tohle by bylo jenom pro Safari/Chrome |
||
_es Profil |
#4 · Zasláno: 2. 8. 2010, 11:54:18 · Upravil/a: _es
Sislik:
Síce sa mi to nezdá, no nesúvisí to s problémom popísaným tu? Číslo 0.1 sa v dátovom formáte double presne zapísať nedá.
Potom by napríklad kroky 0.25 0.5 0.75 a pod. mali fungovať bez problémov. |
||
Sislik Profil |
#5 · Zasláno: 2. 8. 2010, 13:25:22
to mě nenapadlo, to je hodně dobrá teorie, kterou důkladně prověřim
letmým testem tu teorii sice nabourává rychlej test, že 50.1 je v Safari akceptováno, ale 60.1 už neprojde ale ještě prověřim, díky za tip |
||
Časová prodleva: 4 dny
|
|||
Amunak Profil |
#6 · Zasláno: 7. 8. 2010, 01:15:36
Jinak pokud bys to chtěl mít hezké všude, nejlepší by asi bylo udělat to jako type text, možná jen readonly a ty šipečky si doskriptovat javascriptem a obrázkama.
|
||
Sislik Profil |
#7 · Zasláno: 7. 8. 2010, 10:39:34
jj, jasný, ale ono to je aplikace pro mě a pár přátel, kde jsem si chtěl vyzkoušet nový fičurky z HTML5, který se mi sice moc líbí, ale zatim je to nepoužitelný, když to user-friendly funguje jenom v Opeře. Kdybych to chtěl prodávat, tak to nemůžu dovolit a takhle to samozřejmě nechat namůžu :) btw, readonly určitě ne, protože naklikávat si pomocí šipeček čísla v řadech stovek nebo tisíců by bylo docela šílený (pokud by se začínalo na 0 s krokem 1 (nebo 0.1))
jinak ten problém ve WebKitu jsem nakonec vyřešil tak, jak jsem nechtěl - jsem tam dal IF webkit THEN step="any", uvidíme, jak se to změní s dalšíma verzema WebKitu... (a IE a FF) |
||
Časová prodleva: 14 let
|
0