ugrás a tartalomhoz

selected - lekérdezni, egy select list-ből melyik option-ban van a selected="selected" ?

Mikulasche · 2014. Május. 3. (Szo), 14.14
Rengeteg select list van egy lapon, mindegyik úgy jön be, hogy van bennük selected="selected".

Mindegyikben más-más option a selected.

Szeretném lekérdezni a legördítés pillanatában, hogy mi az eredeti default selected-je.

Próbáltam JS -el JQ-val - nem jöttem rá, és leírást se találtam sehol.


Valaki tud valami megoldást ?
 
1

PONTOSÍTÁS !!

Mikulasche · 2014. Május. 3. (Szo), 14.23
Pontosabban AZUTÁN lekérdeni melyik a selected
miután már összevissza többször mást mást kiválasztottam a legördülőből.

Na akkor egyszercsak kiválasztom azt amiben a selected="selected" benne van,
na akkor azt tudjam hogy ez az eredeti ami az induláskor volt.
2

Menet közben szerintem már

Hidvégi Gábor · 2014. Május. 3. (Szo), 14.39
Menet közben szerintem már nem lehet megtudni, de az oldal betöltése után közvetlenül még össze tudod szedni ezt az információt.
3

Miután betöltődött az oldal,

Blintux · 2014. Május. 3. (Szo), 16.41
Miután betöltődött az oldal, lekérdezed a kijelölt opciót.
Példa: http://jsfiddle.net/by3nZ/

Ezután eltárolod, hogy ennek a selectnek mi volt a default értéke.
Mivel írtad hogy select-ed van, mondjuk egy tömbben tárolod.
Hogy azonosítani tudd, mindegyik selectnek veszel fel egy ID-t és ID:érték párossal tárolod el őket.
Ezután bármikor megtudhatod, hogy a select elemnek mi volt ez eredetileg bejelölt opciója.
4

Sejtettem

Mikulasche · 2014. Május. 3. (Szo), 20.48
.. hogy szimplán nem fog menni.

Kösz a választ.

Az eszembe jutott, hogy első rákattintáskor
amikor ugye az aktuális value a selected-el megjelölt option,
na hogy azt kiolvasom .val és .data rádobom egy változóba a select-re.

De aztán második rákattnál meg le kell kérdezni hogy létezik e ha igen akkor már ne dobja rá stb. mert akkor már más az aktuális val

Szóval megoldani megtudom, de reméltem, hogy van egyszerűbb megoldás.

Már annyi JQ esemény van ráírva a select-re, nem akartam mégegyet..
5

Custom attribute

gabesz666 · 2014. Május. 3. (Szo), 21.14
Olyat is tudsz csinálni, hogy az option tagnél felveszel egy extra attribútumot, például data-original-value="true", ha a selected attribútum is ott van. Ennek az egyedi attribútumnak a későbbiekben nem fog változni az értéke.
6

Extra attribútumok

complex857 · 2014. Május. 3. (Szo), 21.39
Oh, most látom ez már gabesz666 leírta (-:
Ha csak az érdekel, hogy mi volt az eredeti érték az oldal betöltődésekor akkor nekem a legegyszerűbbnek az tűnik, hogy megfested a megfelelő <option> elemet egy "data-" attribútummal amit nem érint a felhasználói input, valahogy így: http://jsfiddle.net/mw6CL/

Így aztán amikor eljön a lekérdezés pillanata mindig meg fogod tudni mondani mi volt eredeti érték (feltéve, hogy maguk az <option> elemek nem jönnek-mennek).



Maga a jquery (illetve végső soron a DOM ugye) egyébként különbséget tesz a "selected" attribútum és a <select> elem ".selectedIndex" property-je vagy az egyes <option> elemek ".selected" property-jei között. Ez jQueryben a ".prop()" vs ".attr()" adta eltérésekben érhető tetten, a fenti példát átalakítva: http://jsfiddle.net/PTP46/

A fentieket persze össze lehet zavarni azzal, ha javascriptből adod hozzá/törlöd le "selected" attribútumot.
7

Nem kell túlbonyolítani:

tgr · 2014. Május. 12. (H), 00.08
Nem kell túlbonyolítani: http://jsfiddle.net/K4Qg2/
8

Tökéletes megoldást mutattál - tgr !

Mikulasche · 2014. Május. 16. (P), 18.20
Remek !
Nagyon köszönöm !

Az ötletet - tudást - az eredeti kérdésemre tőled kaptam.
/kezdő lévén a find -et nem ismertem/

A megoldás a kérdésemre: /erről az egyszerűségről van szó ugyanis/:

if($(this).find('[selected]').val() == $(this).find(':selected').val())
{
// something happen
}
else
{
//some another happen
}


//butamódbantabolva 8-}
9

== helyett ===-t érdemes

tgr · 2014. Május. 19. (H), 08.15
== helyett ===-t érdemes használni (általában is, ebben a konkrét esetben meg különösen). Pl.

<option value="">Select number of legs:</option>
<option value="0">Zero</option>
<option value="1">One</option>
<option value="2">Two</option>
Ez egy elég tipikus HTML kód, és itt a feltételed igaz lesz, ha a Select... volt alapból kiválasztva, és a user a Zero-ra vált.