N inputů a kontrola obsahu – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

N inputů a kontrola obsahu – JavaScript, AJAX, jQuery – Fórum – Programujte.comN inputů a kontrola obsahu – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

JMM
~ Redaktor
0
Grafoman
27. 2. 2009   #1
-
0
-

Ahoj, potřebuju helpnout. JS neumim a plácám to z vody. Mám n inputů pro vkládání čísla. To číslo mohu u každého inputu zvětšovat nebo zmenšovat pomocí šipek (obrázků). Protože ale potřebuju jen čísla kladná a nulu, potřebuju odfiltrovat záporná čísla a ty vrátit zase na nulu.

HTML

<form name="formular" action="{/DOCUMENT/SYSTEM/WEBSERVER_URL}?action=OFFER" method="POST">

<input id="pocet{position()}" name="NUM{OID}" type="text" size="1" value="{OFFER_COUNT}" onblur="Kontrola();" />
<img onclick="javascript:document.formular.pocet{position()}.value=parseInt(document.formular.pocet{position()}.value) + 1"
<img onclick="javascript:document.formular.pocet{position()}.value=parseInt(document.formular.pocet{position()}.value) - 1"
</form>

U toho inputu ani nevím zda je to OnBlur správně

Muj JS :-/
function Kontrola() {  

var form=document.formular;

if (form.pocet.value<'0')
{
document.formular.pocet.value=0;
return;
}
document.formular.submit();
}

Vůbec netušim jak to udělat.

Nahlásit jako SPAM
IP: 89.111.99.–
Jan Malý | web: www.malyphoto.cz, @malyphoto
Měsíček0
Newbie
27. 2. 2009   #2
-
0
-

Zkusím Tě nakopnout trochu správným směrem :)

<script type="text/javascript">

/**
* I = kladné, II = nula, III = záporné
*/
var I = 1, II = 0, III = -1;
/**
* Nyní vytvoříme funkci, která ze záporné udělá nulu
*/
function make_zero (n) {
if (parseInt(n) < 0) {
n = 0;
}
return n;
}
/**
* Nyní otestujeme výsledek s funkcí a bez
*/
alert("Proměnná I (před funkcí) ["+I+"] - Proměnná I (po funkci) ["+make_zero(I)+"] ");
alert("Proměnná II (před funkcí) ["+II+"] - Proměnná II (po funkci) ["+make_zero(II)+"] ");
alert("Proměnná III (před funkcí) ["+III+"] - Proměnná III (po funkci) ["+make_zero(III)+"]");
</script>

Nahlásit jako SPAM
IP: 85.207.199.–
JMM
~ Redaktor
0
Grafoman
2. 3. 2009   #3
-
0
-

no nějak nemohu přijít na to jak to sprovoznit :-/

Nahlásit jako SPAM
IP: 89.111.99.–
Jan Malý | web: www.malyphoto.cz, @malyphoto
Měsíček0
Newbie
3. 3. 2009   #4
-
0
-

Co třeba tímto způsobem?

============
Zde je živá ukázka -> http://www.bug-test.xf.cz/j_test.html
============

<script type="text/javascript">

function p_m_one (o,op) {
_ = parseInt((__ = document.getElementById(o)).value);
switch (op) {
case "+" :
__.value = (_ < 0) ? 0 : _ + 1;
break;
case "-" :
__.value = (_ < 0 || _ == 0) ? 0 : _ - 1;
break;
default:
__.value = (_ < 0) ? 0 : _;
break;
}
}
</script>

<form action="#">
Input 1:
<input id="i_1" value="0" onblur="p_m_one('i_1','');">
<img src="" alt="tl_+" onclick="p_m_one('i_1','+');">
<img src="" alt="tl_-" onclick="p_m_one('i_1','-');">
<hr>
Input 2:
<input id="i_2" value="0" onblur="p_m_one('i_2','');">
<img src="" alt="tl_+" onclick="p_m_one('i_2','+');">
<img src="" alt="tl_-" onclick="p_m_one('i_2','-');">
<hr>
Input 3:
<input id="i_3" value="0" onblur="p_m_one('i_3','');">
<img src="" alt="tl_+" onclick="p_m_one('i_3','+');">
<img src="" alt="tl_-" onclick="p_m_one('i_3','-');">
<hr>
</form>

Nahlásit jako SPAM
IP: 85.207.199.–
Měsíček0
Newbie
3. 3. 2009   #5
-
0
-

A jen dovětek k příspěvku výše .. ta funkce by mohla být napsána i takto :)

function p_m_one (o,op) {

_ = parseInt((__ = document.getElementById(o)).value);
__.value=((op!='')?((_>=0)?((/\+/.test(op))?_+1:_-1):0):((_<=0)?0:_));
}

přičemž - jestli je kliknuto na "+" funkce přičte k hodnotě 1, jestli je kliknuto na "-" funkce odečte od hodnoty 1, jestli se někdo pokouší jít pod nulu (např. -9) tak ho to okamžitě hodí zpět na nulu (čiliže neměl by se dostat do záporných hodnot).

Celkově tedy ještě jednou:

<script type="text/javascript">

function p_m_one (o,op) {
_ = parseInt((__ = document.getElementById(o)).value);
__.value=((op!='')?((_>=0)?((/\+/.test(op))?_+1:_-1):0):((_<=0)?0:_));
}
</script>

<form action="#">
Input 1:
<input id="i_1" value="0" onblur="p_m_one('i_1','');">
<img src="" alt="tl_+" onclick="p_m_one('i_1','+');">
<img src="" alt="tl_-" onclick="p_m_one('i_1','-');">
<hr>
Input 2:
<input id="i_2" value="0" onblur="p_m_one('i_2','');">
<img src="" alt="tl_+" onclick="p_m_one('i_2','+');">
<img src="" alt="tl_-" onclick="p_m_one('i_2','-');">
<hr>
Input 3:
<input id="i_3" value="0" onblur="p_m_one('i_3','');">
<img src="" alt="tl_+" onclick="p_m_one('i_3','+');">
<img src="" alt="tl_-" onclick="p_m_one('i_3','-');">
<hr>
</form>

Nahlásit jako SPAM
IP: 85.207.199.–
JMM
~ Redaktor
0
Grafoman
13. 3. 2009   #6
-
0
-

To Měsíček : šlo by nějak udělat, aby ikdyž je tam 0 nešlo dát na -1

Nahlásit jako SPAM
IP: 89.111.99.–
Jan Malý | web: www.malyphoto.cz, @malyphoto
Měsíček0
Newbie
15. 3. 2009   #7
-
0
-

Nejsem si jist, jestli jsem Vás správně pochopil, ale zkuste tohle:

1.) Do <script type="text/javascript"></script> si přidejte ještě tuhle funkci:

  function con_one (o) {

(_=document.getElementById(o)).value = isNaN(_.value) ? 0 : _.value;
}


2.) Na každý INPUT přidejte tuto událost volající výše uvedenou funkci.
onkeydown="con_one('i_1');"
čiliže když dříve bylo tohle
<input id="i_2" value="0" onblur="p_m_one('i_2','');">
nyní bude tohle
<input id="i_2" value="0" onblur="p_m_one('i_2','');" onkeydown="con_one('i_2');">
atd .. (nezapomeňte uvést správné ID (tedy nedávejte všude i_2, ale i_1 .. i_2 .. i_3 atd.

Nahlásit jako SPAM
IP: 85.207.199.–
JMM
~ Redaktor
0
Grafoman
16. 3. 2009   #8
-
0
-

To Měsíček : jj dokázal jsem to použít, ale v téhle verzi když je v inputu 0 tak mi to stejně skočí na -1 a pak zase po stisknutí "-" na 0
Použil jsem tu předchozí verzi a ta funguje vpohodě.

Nahlásit jako SPAM
IP: 89.111.99.–
Jan Malý | web: www.malyphoto.cz, @malyphoto
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, 5 hostů

Podobná vlákna

Velkost INPUTu — založil marioff

Kombinace inputů — založil Caterpillar

 

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