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 a dělaj jsem to ve svým 1st Page 200 a to je hodně podobný jako IE. ale nezaručuju, že to IE zobrazuje stejně.
>> 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