

Javascript záměna "čárky" tečkou.
Dobrý den potřeboval bych skript na záměnu čárky tečkou.
Už jsem něco zkoušel ale nefunguje mi to.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<script language="JavaScript" type="text/javascript">
function Zamena(value) {
if(value == "") return false;
value = value.replace(/,/, '.');
if(parseFloat(value) != (value*1)) return false;
return true;
}
</script>
<body>
<input type="text" id="zadat" onclick="Zamena(this.value)" value="" />
<input type="text" />
</body>
</html>
Ještě že mě láásko mááš....
Hoj máš pravdu ještě že tě lásko mám. Ale nefunguje to . a ještě jeden dotaz ? nemáš ICQ ? či skype, páč to jak si to opravil jsem zkoušel taky ale nefungovalo to a ani ted to nefunguje vyskočí okno .
Ak chceš nahradiť každú čiarku (nie len prvú), tak v regulárnom výraze musíš použiť modifikátor "g":
Čo chceš s tou hodnotou robiť? Nahradiť to v tom istom inpute alebo to priradiť tomu druhému inputu?
Kontrola, či to je číslo, sa robí nasledovne:
Ukážka:
no takle dělám to proto, že mám PHP (ano můžu to udělat i v PHP ale nefunguje mi to) a právě že když se napíše čárka tak to nepočítá když napíšu tečku tak to jde, protože amíci zase maj jako desetinný oddělovač tečku místo čárky.A ano potřebuju to napsat do jednoho inputu a pomocí např.: onBlur to změnit na tečky ještě před odesláním "formuláře".Takže napíšu třeba 1,25 a když kliknu jinam tak se to v tom inputu změní na 1.25 .
Keď máš server, tak je zbytočné to robiť na klientovi. Čo ti nefunguje v PHP, str_replace?
Ak to chceš robiť v JavaScripte, tak zmeníš telo onInput na this.value = this.value.replace(/,/g, '.'). A dáš to do obsluhy onblur. Prípadne dáš tú kontrolu do form.onsubmit a v prípade nesprávneho vstupu vrátiš false. Ale v prvom rade by som to ošetroval na serveri.
ano přesně to co jste napsal mi nefunguje.
Ako konkrétne to nefunguje?
Do premennej $PP priraďuješ hodnotu z $_POST['PP']. Potom kontroluješ, či je $PP nastavené cez isset($PP). Keď dáš medzi to $PP = str_replace(',', '.', $PP), tak následná kontrola cez isset bude vždy true. Takže zmeň tie kontroly isset($PP) a isset($P) na isset($_POST['PP']) a isset ($_POST['P']).
Takže funkcia str_replace ti funguje normálne. Používaj var_dump a error_reporting, ak ti niečo nefunguje na serveri.
Edit: Počas ladenia si nastav error_reporting a zobrazovanie chýb v konfigurácii (napr. cez .htaccess). Prípadne priamo v kóde na začiatku stránky zavolaj:
Potom budeš vidieť, prečo ti to nefunguje. Napr. isset by si mal použiť hneď pri čítaní z poľa $_POST, napr.:
Edit 2: Alebo to môžeš spraviť úplne celé v JavaScripte a nebudeš na to potrebovať server.
Díky moc šéfe už to funguje. Fakt mockrát děkuju.