Autor Zpráva
Meldo
Profil
Ako, alebo co doplnit do <input> aby mohol uzivatel pisat len cisla?
nightfish
Profil
javascript, který po každé stisknuté klávese bude kontrolovat, zda-li bylo zadáno číslo a v případě, že ne, tak smaže poslední znak

samozřejmě se to bude dát obejít vypnutím javascriptu, takže kontrola na straně serveru je nutná
k
Profil *
to lze pomoci JS
k
Profil *
nightfish
byl si rychlejsi:)
Meldo
Profil
nightfish
Vypnuty JavaScirpt mi je jasny.

Ok. Vyskusam nieco.
nightfish
Profil
Meldo
tohle jsem ted zplodil - není to určitě nejlepší řešení, ale funguje...
<script type="text/javascript">

<!--
function test() {

var text = document.getElementById("t").value;
var isNum = true;
var numbers = "0123456789";
var index = 0;
var dec = 0;
while ((index < text.length) && (isNum)) {
isNum = (numbers.indexOf(text.charAt(index)) != -1);
if (!isNum) {
text = text.substring(0,index) + text.substring(index+1, text.length);
document.getElementById("t").value = text;
}
index++;
}
}
-->
</script>

<input type="text" id="t" size="20" onkeyup="test();" />
Meldo
Profil
nightfish
Hmm. Nefunguje mi to. Skusal som to v IE6, FF aj O ale nic.
nightfish
Profil
Meldo
testoval jsem to ted v SM 1.0.5, FF 2.0 a IE 6.0 a funguje bez problémů, takže se domnívám, že problém bude někde jinde...

takže co to dělá, nedělá? co na to říkají konzole JS?
archaon
Profil *
tenhle script je fakt super:)hodně mi ulehčil práci:P
Matyáš Dvořák
Profil
Takhle jsem to modifikoval :)

function jeCislo(retezec) {
var znak;
var cisla = "0123456789";
var cislo = true;

for (i=0;i<retezec.length && cislo==true;i++) {
znak = retezec.charAt(i);

if (cisla.indexOf(znak)==-1)
cislo = false;
}
return cislo;
}
nightfish
Profil
Takhle jsem to modifikoval :)
výborně, ale původní problém tvá modifikace neřeší

navíc místo cislo = false můžeš v klidu napsat return false;
a misto return cislo; dat return true;
a vyhodit ten test cislo == true z podmínky v cyklu
Toto téma je uzamčeno. Odpověď nelze zaslat.

0