Autor | Zpráva | ||
---|---|---|---|
maycza Profil |
#1 · Zasláno: 29. 5. 2013, 08:11:44
Zdravím všechny,
snažím se v jquery vyřešit takovou věc. Mám v tabulku s několika buňkami, ve kterých jsou button y + a - a mezi nimi <input type="text"> . Chci udělat, aby mi tlačítka + a - po kliknutí přidávali nebo ubírali hodnoty v inputu. Pokud bych měl jednu buňku tak to není problém, ale když je jich několik... jediné čeho jsem dosáhl je to, že mi to přidává a ubírá hodnoty vě všech inputech. Vím proč to dělá, ale nevím jak to udělat v rámci konkrétní buňky..
HTML: <table> <tr><td><input type='button' class='minus'><input type='text' class='cislo'><input type='button' class='plus'></td></tr> <tr><td><input type='button' class='minus'><input type='text' class='cislo'><input type='button' class='plus'></td></tr> </table> jQuery (přidává a ubírá všude, zkoušel sem to dát celé do $("td").hover(functiom(){...}); .. ale taky nic)
$(".plus").click(function(){ var vyhry=$(".cislo").val(); vyhry++; $(".plus").prev("input").val(vyhry); }); $(".minus").click(function(){ var vyhry=$(".cislo").val(); if (vyhry>0){ vyhry--; $(".minus").next("input").val(vyhry); } }); Máte s tím někdo nějaké zkušenosti? Když tak se podělte :) díky |
||
juriad Profil |
#2 · Zasláno: 29. 5. 2013, 08:52:30
$(".plus").click(function(){ var vyhry=$(".cislo", this).val(); vyhry++; $(".cislo", this).val(vyhry); }); $(".minus").click(function(){ var vyhry=$(".cislo", this).val(); if (vyhry>0){ vyhry--; $(".cislo", this).val(vyhry); } }); |
||
maycza Profil |
#3 · Zasláno: 29. 5. 2013, 09:03:09 · Upravil/a: maycza
juriad:
$(".cislo", this).val() podle mě bere jako potomka třídy "plus" a "minus", ne jako potomka dané buňky... zřejmě proto to i nefunguje. Ale i tak díky :)Už to mám! :D $(".plus",this).click(function(){ var vyhry=$(this).prev("input").val(); vyhry++; $(this).prev("input").val(vyhry); }); $(".minus").click(function(){ var vyhry=$(this).next("input").val(); if (vyhry>0){ vyhry--; $(this).next("input").val(vyhry); } }); |
||
mylan Profil |
#4 · Zasláno: 29. 5. 2013, 09:15:27
Čo takto:
$(".plus, .minus").click(function() { var vyhry = $(this).closest("td").find("input.cislo"); vyhry.val(Number(vyhry.val()) + ($(this).is(".minus") ? -1 : 1)); }); |
||
Chamurappi Profil |
#5 · Zasláno: 29. 5. 2013, 10:08:11
Reaguji na mayczu:
Kdybych měl jistotu, že bude HTML kód vypadal takhle, tak bych dal jednomu tlačítku onclick="this.nextSibling.value--" a druhému onclick="this.previousSibling.value++" . Nepotřeboval bych ani class , ani dodatečně vyhledávat podle třídy, ani kontrolovat názvy elementů…
|
||
maycza Profil |
#6 · Zasláno: 29. 5. 2013, 11:32:27
V js a jquery jsem celkem začátečník, takže nevím proč mě nefunguje Chamurappiho řešení... jenom sem tvůj kód přidal tlačítkám, takže mi možná něco uniká...
Mylan: tak nějak sem si to představoval, řešení na dva řádky :-D super! :) Díky všem za rady ! :) |
||
Chamurappi Profil |
#7 · Zasláno: 29. 5. 2013, 11:41:07
Reaguji na mayczu:
„takže nevím proč mě nefunguje Chamurappiho řešení... jenom sem tvůj kód přidal tlačítkám“ To stačí a fungovat by to mělo. Pokud opravdu tvůj kód opravdu vypadá tak, jak uvádíš v prvním příspěvku… „tak nějak sem si to představoval, řešení na dva řádky :-D“ Když nepočítáš těch 9800, které kvůli tomu musíš linkovat. Určitě by šlo udělat i řešení na jeden řádek a všechno ostatní schovat do externího souboru :-) |
||
maycza Profil |
#8 · Zasláno: 29. 5. 2013, 12:27:58
Chamurappi:
máš pravdu, funguje to, měl jsem každý input zvlášť na řádku...
Kód, který jsem sem vložil byl jenom příklad, ve skutečnosti je to tabulka s asi 15ti řádky a 6 sloupci (klasická fotbalová tabulka V R P Skóre B), ve které upravuju číselné hodnoty a ukládám do tabulky v mysql. Chtěl jsem si zjednodušit to neustálé vyťukávání čísel, takto jenom kliknu... a teď mi došlo, že to mínus je tam vlastně úplně zbytečné 0:-) :D |
||
Časová prodleva: 11 let
|
0