Autor Zpráva
Spectator
Profil
Dobrý den,
mám několik stejných elementů neznámého počtu.

<input type="text" name="vstup_1" value="" class="vstupy" style="float: left;" id="h_0" />
<input type="text" name="vstup_2" value="" class="vstupy" style="float: left;" id="h_1" />
<input type="text" name="vstup_n" value="" class="vstupy" style="float: left;" id="h_n" />

Jak při kliknutí na "některý" z elementů získám jeho ID? Vždy se dostanu pouze k prvnímu elementu, ale dál už vyhovující element jquery nehledá.
Poradí někdo prosím?
Sir Tom
Profil
Spectator:
Také dobrý den,
kdy jQuery zjišťuje, na jaký element bylo kliknuto?

Já bych to řešil bez jQuery pouze za pomoci události onclick="byloNaMneKliknuto('h_x')"
a funkce
function byloNaMneKliknuto(id){
 alert("Moje id je: " + id);
}
Chamurappi
Profil
Reaguji na Spectatora:
Jak při kliknutí na "některý" z elementů získám jeho ID?
K čemu to ID potřebuješ? Opravdu je nutné ho zjišťovat?
Spectator
Profil
Sir Tom:
Díky, já úplně zapomněl na události elementu.

Chamurappi:
Potřebuji je kvůli mazání vstupů.
Chamurappi
Profil
Reaguji na Spectatora:
Mohl by ses víc rozpovídat? Na první pohled mi nepřipadá zvolený postup moc rozumný.
Sir Tom
Profil
Spectator:
Souhlasím s Chamurappim. Napiš sem čeho se snažíš docílit a třeba najdeme lepší řešení. Jaké mazání vstupů? Jakože nejdřív kliknu do nějakého inputu a pak na tlačítko, které mi vymaže hodnotu daného (předtím kliknutého) inputu?
Spectator
Profil
Po vyplnění input text přidám další a při vyplnění dalšího opět další, atd... Ovšem když jsem při vyplňování zadal zbytečnou hodnotu tak chci input odstranit. To je celé. Každý input = jméno uživatele. Předem nevím kteří, předem nevím kteří zas ne.
Keeehi
Profil
Spectator:
A co kouzelné slůvko this? To by jsi použít nemohl? Malý příklad pro smazání elementu, na který se klikne:
<a href="#" onclick="this.parentNode.removeChild(this);">Zmizím</a>
<a href="#" onclick="this.parentNode.removeChild(this);">Já taky zmizím</a>
Vůbec k tomu žádné id znát nepotřebuješ. Není to to, co chceš ty, ale můžeš z to vyjít.

Ještě k těm nesmyslným name. Zkus to takto:
<input type="text" name="vstup[]" /> 
<input type="text" name="vstup[]" /> 
<input type="text" name="vstup[]" /> 
<input type="text" name="vstup[]" />
Na servru se ti to objeví inteligentně jako pole.
Joker
Profil
Spectator:
Ze zvědavosti, výsledkem toho přidávání a odebírání předpokládám může být něco takovéhoto: vstup_1, vstup_2, vstup_4, vstup_7, vstup_8.
Jak se to pak zpracuje?
Spectator
Profil
Keeehi:
Nechci mazat kliknutím do textového pole, ale kliknutím na tlačítko vedle.

Názvy vstupů jsem hned po zprovoznění předělal, protože to bylo strašné zpracovat.
Keeehi
Profil
Vždyť jsem psal, že to není přesně ono. Ale přepsat to na to, na co potřebuješ přece není nic těžkého:
<span><input type="text" name="vstup[]" /><a href="#" onclick="this.parentNode.parentNode.removeChild(this.parentNode);">Smaž</a></span>
<span><input type="text" name="vstup[]" /><a href="#" onclick="this.parentNode.parentNode.removeChild(this.parentNode);">Smaž</a></span>
<span><input type="text" name="vstup[]" /><a href="#" onclick="this.parentNode.parentNode.removeChild(this.parentNode);">Smaž</a></span>
<span><input type="text" name="vstup[]" /><a href="#" onclick="this.parentNode.parentNode.removeChild(this.parentNode);">Smaž</a></span>
Spectator
Profil
Keeehi:
děkuji! Tohle je krasné řešení!

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:

Prosím používejte diakritiku a interpunkci.

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