Prompt("") – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Prompt("") – JavaScript, AJAX, jQuery – Fórum – Programujte.comPrompt("") – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

Earl Cash0
Věrný člen
25. 3. 2007   #1
-
0
-

dneska sem objevil opravdu spatnou vlastnost prompt("") a to ze cokoliv tam napisu (napr. cislo) tak mi to vyhodi jako retezec coz je mnohdy nezadouci napriklad chci-li scitat 2 cisla, ktera predtim nactu pomoci prompt("") a pak to vypisi pomoci document.write()... vyhodi mi to spojeny retezec techto hodnot...nevi nekdo jak nacist 2 cisla a pak je secist?? (ne pomoci formularu)...



var a,b,c
a=prompt("zadej hodnotu","")
b=prompt("zadej hodnotu","")
c=a+b
document.write(c)

Nahlásit jako SPAM
IP: ...–
Oh my goodness, shut me down! Machines making machines. How perverse. (C-3PO)
olgo0
Věrný člen
25. 3. 2007   #2
-
0
-

pouzi konverzne funkcie parseInt() a parseFloat() pred scitanim. takze pre cele cisla:



var a,b,c;
a=prompt("zadej hodnotu a","");
b=prompt("zadej hodnotu b","");
c=parseInt(a)+parseInt(b);
document.write(c)

pre desatinne analogicky.
neladil som to takze tam moze byt preklep.
btw: "jednoduche" premenne nemusis deklarovat (iba polia a objekty).

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
Earl Cash0
Věrný člen
26. 3. 2007   #3
-
0
-

btw: "jednoduche" premenne nemusis deklarovat (iba polia a objekty).


no nejak sem si na to zvykl...a uz jenom z hlediska prehlednosti mi to pripada lepsi vse deklarovat uplne na zacatku....ale stejne diky...

Nahlásit jako SPAM
IP: ...–
Oh my goodness, shut me down! Machines making machines. How perverse. (C-3PO)
26. 3. 2007   #4
-
0
-

To ja bych si zase rad obcas zadklaroval.. Dobry kompromis nabizi podle me PHP. Pokud to chci secist, napisu "+", a pokud to chci spojit, napisu "." ...

Nahlásit jako SPAM
IP: ...–
olgo0
Věrný člen
26. 3. 2007   #5
-
0
-

To Zelenáč: to ano ale osobne mam radsej paskalovsky pristup, z toho automatickeho pretypovania mam husiu kozu aj ked si uz pomaly zvykam

Nahlásit jako SPAM
IP: ...–
"Boze, dopraj mi, prosim ta, petdesiat rokov prace a zabavy, a potom nahlu smrt v spanku." J. Grisham
Petr Fojtík0
Věrný člen
2. 4. 2007   #6
-
0
-

1.Sestavil jsem několik jednoduchých konverzních funkcí - číslo: c=F(a)+F(b)
Dále jsem sepsal kolekci vzorků "čísel"(=vstupních řetězců a,b zapisovaných do PROMPTu), které nedávají v těchto funkcích shodné výsledky.
2.Pro jistotu jsem přidal samostatnou funkci nahrazující příkaz PROMPT,ale poskytující hodnotu typu Number a ošetřující stav, kdy je vstupní $ neplatný (zopakovaním volání PROMPTu).
Použití: a=F("a") b=F("b") c=a+b (tento způsob zpracování každého vstupu zvlášť považuju za výhodnější).

Obojí najdeš v kódu (rozhodně stojí za to si konverzní funkce otestovat - aspoň v mém případě o překvapení nebyla nouze)



<!-- testováno v IE7 -->
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<meta http-equiv="Content-Language" content="cs"><title>Konverze řetězců na čísla </title>
<STYLE>
BODY {font:80% monospace; MARGIN: 1em}
PRE {line-height:0; MARGIN-LEFT : 0.5em}
P {MARGIN: 2pt;}
</STYLE>
</head><body onload="output('')">
<script>
var e=Math.E, r="Math.random()";
var a="1", b="2", c, op;

function input1(){
a=prompt("zadej hodnotu a (číslo)",a);
b=prompt("zadej hodnotu b (číslo)",b);
output("");
}
function dej(co){
try{ return Number(eval(prompt("zadej hodnotu "+co+" (číslo/výraz)",eval(co)))) }
catch(e){return dej(co)}
}
function input2(){
var aa=dej("a");
b=dej("b");
a=aa;
output("");
output("c = a + b = " + (c=a+b));
}
function output(txt){
if (txt) op+="<p>"+txt+"</p>"; else op="";
document.getElementById("output").innerHTML ="<h4>[ a = "+a+" ] [ b = "+b+" ]</h4>"+op;
}
function calc(link){
var sum=link.innerText;
output(sum + " = " + eval(sum));
}
</script>

<b>VSTUPNÍ HODNOTY HODNÉ OTESTOVÁNÍ:</b>
<pre>[ "120" "0120" "0x120" "O12" ] O12 ...velké o Vstup: a="011" b="0x11" ...základní rozdělení metod do skupin</pre>
<pre>[ ".1" "101.2" "101,2" "1OO" ] 1OO ...velké o Pozor na (3)(4)(5) </pre>
<pre>[ "0.1" " -1.23 " "- 1.23" "++1.23" "-.321" ] Co mezery & znaménka & tečka & exponent... </pre>
<pre>[ "-1e3" "123E-3" "0x1e2" "10.e-2"] ..........................................?</pre>
<pre>[ "019" ] pozor na (4a) </pre>
<pre>[ "2e-5" ".0" ] pozor na (4)(6)</pre>
<pre>[ "01e0" "01.0" ] pozor na (5)(6)</pre>
<pre>[ "10+1/8" "010+1/8" "Math.PI" "Math.sqrt(9*9)" "eval(r)" "e" "a" "a++" ] (5a)(5b)</pre>
<pre>[ "101" "101,2" "101,16" ] (6)</pre>
<hr>
<a href='#' onclick='input1();return false'>ZADAT HODNOTY a,b</a>    
<a href='#' onclick='input2();return false'>ZADAT,VYHODNOTIT & SEČÍST HODNOTY a,b</a>; 
<nobr>(Zkuste: "10+1" "010+1" "a" "a+100" "pi" "pi=Math.PI" "pi*(a*a+b*b)")</nobr>
<br><br>
(1.) <a href='#' onclick='calc(this);return false'>
c = a+b </a> .........funguje správně jen pokud jsou a,b typu číslo.<br>
(2a) <a href='#' onclick='calc(this);return false'>
c = 1*a+1*b</a><br>
(2b) <a href='#' onclick='calc(this);return false'>
c = (a-0)+(b-0)</a><br>
(2c) <a href='#' onclick='calc(this);return false'>
c = Number(a)+Number(b)</a><br>
(3.) <a href='#' onclick='calc(this);return false'>
c = parseFloat(a)+parseFloat(b)</a><br>
(4a) <a href='#' onclick='calc(this);return false'>
c = parseInt(a)+parseInt(b)</a><br>
(4b) <a href='#' onclick='calc(this);return false'>
c = parseInt(a,10)+parseInt(b,10)</a><br>

(5a) <a href='#' onclick='calc(this);return false'>
c = Number(eval(a))+Number(eval(b))</a>
Lze zadat číslo jako matem.výraz <br>
(5b) <a href='#' onclick='calc(this);return false'>
c = eval(a)+eval(b)</a><br>
(6.) <a href='#' onclick='calc(this);return false'>
c = Number(eval('parseInt('+a+')')+Number(eval("parseInt("+b+")")))</a>
Lze zadat číslo v libovolné čís.soustavě<br>
<div id='output'></div>
</body></html>

Nahlásit jako SPAM
IP: ...–
Earl Cash0
Věrný člen
2. 4. 2007   #7
-
0
-

proc jednoduse kdyz to jde i slozite.. :))))

Nahlásit jako SPAM
IP: ...–
Oh my goodness, shut me down! Machines making machines. How perverse. (C-3PO)
Petr Fojtík0
Věrný člen
2. 4. 2007   #8
-
0
-

Některé věci se dají nejrychleji zjistit "ozkoušením" (místo zdlouhavého procházení zdroji informací) a pokud si máš (=můžeš) vybrat z několika mírně odlišných alternativ, tak stejně použiješ tu, co je pro tvé účely nejvýhodnější (ale co když je to složité?....škoda času).

Nahlásit jako SPAM
IP: ...–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 15 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý