JS: přeskakující kurzor v INPUTu
7 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Ahoj! Mam takovýto formulář: Pro názornou ukázku jsem z něho vytáhl jen to podstatné. Mám políčko pro telefoní číslo, fax a mobil. Javascriptem ošetřuji, aby uživatel mohl zadávat jenom čísla a znak plus. To mi funguje OK. Ale po kliknutí myši na INPUT (myš stojí na konci textu) se kurzor nechtěně přesune na začátek výchozího textu v inputu (před +420). Potřeboval bych od Vás pomoct vylepšit script, aby to umisťovalo kurzor tam, kde stojí myš a kde se klikne (prostě jak je tomu u běžných INPUTů). Děkuji vám moc. <HEAD> <TITLE>check</TITLE> <SCRIPT type="text/javascript"> <!-- function numbers(obj){ obj.value=obj.value.replace(/([^0-9+])/g,""); } --> </SCRIPT> </HEAD> <BODY> Telefon: <INPUT id="telefon" type="text" name="telefon" value="+420" maxlength="13" onkeydown="numbers(this)" onkeyup="numbers(this)" onblur="numbers(this)" onclick="numbers(this)"><BR> Fax: <INPUT id="fax" type="text" name="fax" value="+420" maxlength="13" onkeydown="numbers(this)" onkeyup="numbers(this)" onblur="numbers(this)" onclick="numbers(this)"><BR> Mobil: <INPUT id="mobil" type="text" name="mobil" value="+420" maxlength="13" onkeydown="numbers(this)" onkeyup="numbers(this)" onblur="numbers(this)" onclick="numbers(this)"><BR> </BODY>
-
VzA: máš zaplou javu? Používáš IE? Já jsem to zatím testoval jen tam.
-
Stačí upraviť, aby sa nemenila hodnota inputu vždy, ale len vtedy, keď treba: function numbers(obj){ var re = /([^0-9+])/g; if (obj.value.match (re)) obj.value = obj.value.replace (re, ""); } Šlo by to vylepšiť tak, aby sa pozícia nezmenila ani v prípade, že sa zmení hodnota v inpute. Postup by bol zhruba takýto: var pos = getPos (input); var before = input.value.substr (0, pos).replace (re, ""); var after = input.value.substr (pos).replace (re, ""); input.value = before + after; setPos (before.length);
-
>> mám zaplou javu Nepleťme si pojmy s dojmy.
-
>> a dělaj jsem to ve svým 1st Page 200 a to je hodně podobný jako IE. a taky si nepleťme "browsery" s editory...
-
nj, tj náš známý astronom ...
-
Dekuji, takhle uz to nezlobi a kurzor nepreskakuje function numbers(obj){ var re = ?; if (obj.value.match (re)) obj.value = obj.value.replace (re, ""); } Mohl bych jeste poprosit, co napsat do promenne re, aby se automaticky menily male znaky za velke (+podpora diakritiky) a potom v dalsim pripade bych rad vedel, jak to udelat aby sly psat vsechny znaky, krome urcitych specifickych znaku? Napriklad "a", "B" a "/". Dekuji