« 1 2 »
Autor Zpráva
lenkali
Profil *
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
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 *
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
"číslo také nesmí začínat nulou...."

A uz to leze :-) A dalsi pravidla? Leo
lenkali
Profil *
: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
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 *
: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 *
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 *
skript jsem nasla na této diskuzi a upravila ho
lenkali
Profil *
prosím o radu
Leo
Profil
V testu nikde nepouzivate reg, coz je chyba, Leo
centi
Profil
lenkali
if (reg.test(myForm.cena.value)) { 
grim
Profil *
Není na to přímo nějaká fce,
isnumeric
nebo tak něco?
Leo
Profil
"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
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
"Problémy sú tu ale dva:"

3, cislem je v JS i tvar

0xff (sestnactkova soustava)

Leo
centi
Profil
Leo
Myslel som problémy vzhľadom k zadaniu :)
lenkali
Profil *
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
"Podívejte se mi na něj ještě, prosím:"

Ono taky zalezi na html kodu... Leo
lenkali
Profil *
<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 *
bez toho mysql
Leo
Profil
Nejak tam nevidim propojeni s tim JavaScriptem... Leo
lenkali
Profil *
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 *
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
lenkali

Jak už psal Leo - vždyť tu fci nikde nevoláš.
lenkali
Profil *
a kde ji mam prosim volat
habendorf
Profil
lenkali

Tam kde ji chceš použít a to víš spíš ty než já :o)
Pravděpodobně asi na onsubmit formu.
Nadan
Profil *
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 *
na to onsubmit se Váže to: submitIt , to je to svázání nebo spíš ne?
habendorf
Profil
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.
« 1 2 »

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: