Autor | Zpráva | ||
---|---|---|---|
lenkali Profil * |
#1 · Zasláno: 16. 2. 2008, 10:21:09
Prosím Vás o pomoc, jak mohu zjistit, zda číslo je ve formuláři napsáno správně
špatně=126 263 správně=126263 a zda jsou zadané pouze číslice, nic jiného špatně = 126m623 správně=126263 to vše ať se javascriptem zjistí před uložením do databáze.... Ve formuláři zadávám do tohoto políčka: <input type="text" name="pocet" size="38"></p> |
||
Leo Profil |
#2 · Zasláno: 16. 2. 2008, 10:33:22
Pokud urcite, co PRESNE je spravny tvar cisla (jen cislice, libovolny pocet?), tak nejobecneji pres regularni vyrazy. Pred ulozenim do databaze to ale na serveru musite zkontrolovat znova (javascript se da snadno vypnout). Leo
|
||
lenkali Profil * |
#3 · Zasláno: 16. 2. 2008, 10:40:25
Leo, správný tvar čísla je libovolný počet číslic v číslu:
třeba: 12 nebo: 126569 nebo: 125698459 číslo také nesmí začínat nulou.... aha, to je pravda, ještě pak musím udělat jednu kontrolu.. |
||
Leo Profil |
#4 · Zasláno: 16. 2. 2008, 10:53:35
"číslo také nesmí začínat nulou...."
A uz to leze :-) A dalsi pravidla? Leo |
||
lenkali Profil * |
#5 · Zasláno: 16. 2. 2008, 11:00:38
:o)
To už je opravdu do detailu Leo, může taky nastat 12,50 ale php umí číst jen 12.50 (jenže lidi jsou zvyklí psát čárku místo tečky) pokud je to složité, tak budu ráda jen za ty celá čísla, co nezačínají nulou a kontrolou, že tam není špatný znak nebo mezera: tedy kontrola čísla v bodech dle důležitosti: 1) je to celé číslo libovolného počtu číslic? ( 125635 nebo 125 ) 2) mezi čísly nesmí být mezera Nesmí být (123 526 = stodvacettřitisícpětsetdvacetšest) správně: 123526 3) číslo nesmí začínat nulou 0123526 ale správně: 123526 4) číslo nesmí obsahovat jiné znaky jak číslice, tedy správně: 1 2 3 4 5 6 7 8 9 0 5) ...to snad stačí... |
||
centi Profil |
#6 · Zasláno: 16. 2. 2008, 11:16:55
Možno to niekto zapíše lepšie:
1. Len čísla, nezačínajúce nulou: var reg = /^[1-9]{1}[0-9]*$/; var num = "123456789"; alert(reg.test(num)); // test vrati true alebo false 2. Čísla s desatinnou čiarkou alebo bodkou, nezačínajúce nulou var reg = /^[1-9]{1}[0-9]*[,.]{1}[0-9]*$/; var num = "1.23456789"; alert(reg.test(num)); A len tak mimochodom, čo tak číslo: 0,123456. Také má platiť alebo nie? Je to totiž platné čislo, ale zase začína nulou :) |
||
lenkali Profil * |
#7 · Zasláno: 16. 2. 2008, 11:19:12
:o)) kolik těch možností ještě existuje...
myslím, že tolik kilo zvířat mít doma žádný kamarád nebude..... 0,1234 :o) snad teda jeeee dekuji, jdu to zkouset s Tvyma podminkama |
||
lenkali Profil * |
#8 · Zasláno: 16. 2. 2008, 12:54:27
tak jsem to zkousela takto a zatim nic :
tento kod ma za ukol povolit jen znaky 0 1 2 3 4 5 6 7 8 9 a zakazat, aby cislo zacinalo nulou = 0 <script language="javascript" type="text/javascript"> reg = /^[1-9]{1}[0-9]*$/; num = "123456789" function submitIt(myForm) { if (num.test(myForm.cena.value)) { return true } alert("Nesprávně zadaná cena") myForm.cena.focus() myForm.cena.select() return false } </script> |
||
lenkali Profil * |
#9 · Zasláno: 16. 2. 2008, 12:55:06
skript jsem nasla na této diskuzi a upravila ho
|
||
lenkali Profil * |
#10 · Zasláno: 16. 2. 2008, 13:31:53
prosím o radu
|
||
Leo Profil |
#11 · Zasláno: 16. 2. 2008, 13:46:32
V testu nikde nepouzivate reg, coz je chyba, Leo
|
||
centi Profil |
#12 · Zasláno: 16. 2. 2008, 13:49:32 · Upravil/a: centi
lenkali
if (reg.test(myForm.cena.value)) { |
||
grim Profil * |
#13 · Zasláno: 16. 2. 2008, 13:50:10
Není na to přímo nějaká fce,
isnumeric |
||
Leo Profil |
#14 · Zasláno: 16. 2. 2008, 13:52:28
"isnumeric"
V JS ne. Navic byste musel testoval lokalni (ceske) verze desetinnych cisel, napr. -5,66e+2 a lokalizace je to, co JS neumi prakticky vubec... Leo |
||
centi Profil |
#15 · Zasláno: 16. 2. 2008, 13:59:25
grim
No, existuje v JS funkcia isNaN() = (is Not a Number), ktorá vráti true, ak zadaná hodnota NIE JE číslo a false, ak zadaná hodnota JE číslo. Problémy sú tu ale dva: 1. Tak ako píše Leo, táto funkcia by vyhodnotila napr 3,14 ako hodnotu, ktorá nie je číslom, kdežto 3.14 by chápala ako číslo 2. Rovnako by nebola splnená podmienka, že číslo nesmie začínať nulou, pretože z pohľadu isNaN() funkcie je číslo i 0123 |
||
Leo Profil |
#16 · Zasláno: 16. 2. 2008, 14:23:35
"Problémy sú tu ale dva:"
3, cislem je v JS i tvar 0xff (sestnactkova soustava) Leo |
||
centi Profil |
#17 · Zasláno: 16. 2. 2008, 14:26:22
Leo
Myslel som problémy vzhľadom k zadaniu :) |
||
lenkali Profil * |
#18 · Zasláno: 16. 2. 2008, 14:44:29
Ani takto upravený skript nefunguje:
Vždy to uloží, aniž by to napsalo hlášku o špatně zadaném čísle: Podívejte se mi na něj ještě, prosím: (skript vkládám úplně na začátek stránky) <script language="javascript" type="text/javascript"> reg = /^[1-9]{1}[0-9]*$/; num = "123456789" function submitIt(myForm) { if (reg.test(myForm.cena.value)) { return true } alert("Nesprávně zadaná cena") myForm.cena.focus() myForm.cena.select() return false } </script> |
||
Leo Profil |
#19 · Zasláno: 16. 2. 2008, 14:45:43
"Podívejte se mi na něj ještě, prosím:"
Ono taky zalezi na html kodu... Leo |
||
lenkali Profil * |
#20 · Zasláno: 16. 2. 2008, 14:49:00
<html>
<head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> <title>kamaradi</title> </head> <body> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Windows 1250"> </HEAD> <BODY> <H2>Nový zápis </H2> <FORM method="post" action="ulozkamarada.php" enctype="multipart/form-data" name=""> <input type="text" name="jmeno" size="38"></p> <input type="text" name="kilacislo" size="38"></p> <? $max_files=2; printf("<b></b> <br>"); echo " <form method=\"post\" action=\"$_SERVER[PHP_SELF]\" enctype=\"multipart/form-data\">"; // show the file input field based on($max_files). for ($i = 1; $i <= $max_files; $i++) { echo "fotka $i: <input type=\"file\" name=\"file". $i ."\"><br>"; } echo " <br>"; echo " <input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"$max_size\"> <input type=\"submit\" name=\"upload_form\" value=\"Uložit zápis!\"> </form>"; ?> </TD> </TR> </TABLE> </FORM> <? mysql_close(); } while (false); ?> |
||
lenkali Profil * |
#21 · Zasláno: 16. 2. 2008, 14:49:38
bez toho mysql
|
||
Leo Profil |
#22 · Zasláno: 16. 2. 2008, 17:01:46
Nejak tam nevidim propojeni s tim JavaScriptem... Leo
|
||
lenkali Profil * |
#23 · Zasláno: 17. 2. 2008, 16:56:44
Mrkněte se prosím na tento kód a pokud víte, proč nefunguje, dejte vědět....
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> <title>kamaradi</title> </head> <script language="javascript" type="text/javascript"> reg = /^[1-9]{1}[0-9]*$/; num = "123456789" function submitIt(myForm) { if (reg.test(myForm.cena.value)) { return true } alert("Nesprávně zadaná cena") myForm.cena.focus() myForm.cena.select() return false } </script> <body> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Windows 1250"> </HEAD> <BODY> <H2>Nový zápis </H2> <FORM method="post" action="ulozkamarada.php" enctype="multipart/form-data" name=""> <input type="text" name="jmeno" size="38"></p> <input type="text" name="kilacislo" size="38"></p> <? $max_files=2; printf("<b></b> <br>"); echo " <form method=\"post\" action=\"$_SERVER[PHP_SELF]\" enctype=\"multipart/form-data\">"; // show the file input field based on($max_files). for ($i = 1; $i <= $max_files; $i++) { echo "fotka $i: <input type=\"file\" name=\"file". $i ."\"><br>"; } echo " <br>"; echo " <input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"$max_size\"> <input type=\"submit\" name=\"upload_form\" value=\"Uložit zápis!\"> </form>"; ?> </TD> </TR> </TABLE> </FORM> |
||
lenkali Profil * |
#24 · Zasláno: 17. 2. 2008, 16:58:16
Mrkněte se prosím na tento kód a pokud víte, proč nefunguje, dejte vědět,
tento kod prosím o konrolu <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> <title>kamaradi</title> </head> <script language="javascript" type="text/javascript"> reg = /^[1-9]{1}[0-9]*$/; num = "123456789" function submitIt(myForm) { if (reg.test(myForm.kilacislo.value)) { return true } alert("Nesprávně zadaná cena") myForm.kilacislo.focus() myForm.kilacislo.select() return false } </script> <body> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=Windows 1250"> </HEAD> <BODY> <H2>Nový zápis </H2> <FORM method="post" action="ulozkamarada.php" enctype="multipart/form-data" name=""> <input type="text" name="jmeno" size="38"></p> <input type="text" name="kilacislo" size="38"></p> <? $max_files=2; printf("<b></b> <br>"); echo " <form method=\"post\" action=\"$_SERVER[PHP_SELF]\" enctype=\"multipart/form-data\">"; // show the file input field based on($max_files). for ($i = 1; $i <= $max_files; $i++) { echo "fotka $i: <input type=\"file\" name=\"file". $i ."\"><br>"; } echo " <br>"; echo " <input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"$max_size\"> <input type=\"submit\" name=\"upload_form\" value=\"Uložit zápis!\"> </form>"; ?> </TD> </TR> </TABLE> </FORM> |
||
habendorf Profil |
#25 · Zasláno: 17. 2. 2008, 16:58:36
lenkali
Jak už psal Leo - vždyť tu fci nikde nevoláš. |
||
lenkali Profil * |
#26 · Zasláno: 17. 2. 2008, 16:59:43
a kde ji mam prosim volat
|
||
habendorf Profil |
#27 · Zasláno: 17. 2. 2008, 17:02:22
lenkali
Tam kde ji chceš použít a to víš spíš ty než já :o) Pravděpodobně asi na onsubmit formu. |
||
Nadan Profil * |
#28 · Zasláno: 17. 2. 2008, 17:09:29
Hele, a co takhle tam dát nějaký input jen na čísla a dopsat k tomu něco s tou nulou... Možná to tak ani nejde, jsem začátečník :) ...
|
||
lenkali Profil * |
#29 · Zasláno: 17. 2. 2008, 17:26:37
na to onsubmit se Váže to: submitIt , to je to svázání nebo spíš ne?
|
||
habendorf Profil |
#30 · Zasláno: 17. 2. 2008, 17:30:05
na to onsubmit se Váže to: submitIt
Nikde tam takovou vazbu nevidím. Takže ještě jednou - na onsubmit formu musíš tu funkci zavolat. |
||
Téma pokračuje na další straně.
|
0