ugrás a tartalomhoz

select probléma

whiteman0524 · 2009. Okt. 9. (P), 23.34
Üdv mindenkinek !

Egy irtó gyökér kérdésem lenne :D Van egy select elemem, és alapértelmezettként azt akarom, hogy mondjuk az legyen beleírva hogy "Nincs". Most ezt én eddig csak úgy tudtam megcsinálni hogy felvettem belül egy option-t ilyen értékkel. De ez nem valami szép megoldás, mert ha legörgetem akkor ott ez lesz az első opció, és nekem ez így nem tetszik...Az se jobb megoldás ha utolsónak vagy akárhanyadiknak veszem fel és mondjuk beállítom selected='selected' -re. Szóval ne foglalja a helyet a lenyíló listában az a lényeg. Ezt meg lehet oldani valahogy ?

A segítséget előre is köszönöm.
 
1

nem

QXY · 2009. Okt. 10. (Szo), 03.12
Legalábbis az alap html select-el biztosan nem. Viszont készíthetsz "saját" select-et, text inputból + alápozicionált div-ből, megfűszerezve egy kis javascript-el. Olyasmire gondolj, mint pl. google keresésnél a javaslatok.
2

HŰHA

Pisti20 · 2009. Okt. 10. (Szo), 09.38
Sziasztok, nem akarok hülyeséget mondani, lehet félreértettem, de elmondom a véleményem, ha még is arra gondolok amire te.
Szóval én úgy oldottam az ilyesmit meg, bár ez sem szebb megoldás sztem, hogy csináltam egy <input type="hidden" name="hidden" />-t, és ennek adtam meg a nincs értéket.Ezek után írhatod be a selectet ide a formba tovább, mintha ez a hidden istt sem lenne, persze ugyan ilyen name-t ne adj másnak.
<select name="szelekt">
<option>ertek1</option>
<option>ertek2</option>
</select>
itt jön a szép rész :D.Szóval csinálsz egy

<script type="text/javascript">
var default=document.formname.hidden.value;
var szelekt=document.formname.szelekt.value;

if (default==szelekt)
{
document.formname.szelekt.value="NINCS";
}

</script>

Ha nem lenne egyértelmű, a formname-nek a form tegnek megadott name=""-t kell megadni, a selectname ugyan így a selectnek, és az inputename értelemszerűen az input neve lesz, és így tovább. :) ha segíthettem és megy akkor szívesen, ha nem akkor bocsi, lehet elírtam, vagy lehet az elméletemmel van baj, mindenesetre egy próbát megér.Ha minden igaz, akor lesz egy input amit nem látni egy default értékkel, és ha a default érték=a selectével, ami nincs kijelölve, akkor egy "NINCS" értéket kap.

De ha ez túl bonyolult, akkor vigygálhatod a javascriptben egyszerűen a null értékkel is.és akkor még hidden elem sem kell. :D

Ebben az esetben így kell csinálni:

<select name="szelekt">
<option>ertek1</option>
<option>ertek2</option>
</select>


<script type="text/javascript">
var szelekt=document.formname.szelekt.value;

if (szelekt==null)
{
document.formname.szelekt.value="NINCS";
}

</script>

egyszerűbb is átláthatóbb is, csak még reggel van :D nah hali
3

Nem igazán értem....

whiteman0524 · 2009. Okt. 10. (Szo), 11.56
Köszönöm a szép hosszú választ de nem igazán értem mit szeretnél itt csinálni.

Szóval én úgy oldottam az ilyesmit meg, bár ez sem szebb megoldás sztem, hogy csináltam egy <input type="hidden" name="hidden" />-t, és ennek adtam meg a nincs értéket.Ezek után írhatod be a selectet ide a formba tovább, mintha ez a hidden istt sem lenne, persze ugyan ilyen name-t ne adj másnak.
<select name="szelekt">
<option>ertek1</option>
<option>ertek2</option>
</select>
itt jön a szép rész :D.Szóval csinálsz egy

<script type="text/javascript">
var default=document.formname.hidden.value;
var szelekt=document.formname.szelekt.value;

if (default==szelekt)
{
document.formname.szelekt.value="NINCS";
}

</script>


Szóval kimented a hidden és az aktuális select értékét, ez rendben van. De mi az az egyenlőség vizsgálat ? Csak úgy lehet egyenlő a kettő, ha a selectben van egy "nincs" értékű option elem ! Ez pedig csak úgy lehetséges, hogy felveszel a select elembe egy <option value='Nincs'>Nincs</option> elemet. Én pont ezt akarom elkerülni ! :D Szóval értem mit akartál mondani de mégse értem. Ennek így semmi értelme ahogy nézem. Amit föntebb írtál simán is meg lehet oldani. Az alábbi HTML kód ugyan ezt az eredményt adná :

<select name='opciok'>
<option value='Nincs'>Nincs</option>
<option value='1'>Első opció</option>
<option value='2'>Második opció</option>
etc....
</select>


Viszon nagyon úgy fest, hogy tényleg saját select-elemet kell kreálnom javascripttel... Hmm..
4

más ötlet

solkprog · 2009. Okt. 10. (Szo), 12.17
Én se értem ő mit akar.
Viszont ahhoz mit szólsz hogy

<select name='opciok'>
<option value='Nincs'>Nincs</option>
<option value='1'>Első opció</option>
<option value='2'>Második opció</option>
etc....
</select>
és js-el eltünteted/törlöd a <option>Nincs</option>-et ha a selectre ráfokuszálnak?
5

Jó ötlet

whiteman0524 · 2009. Okt. 10. (Szo), 13.25
Igazad van, ez így már mindjárt jobb :) Valóban jó lenne szerintem is. Köszönöm szépen az ötletet :)
6

Mezei megoldás

laji · 2009. Okt. 10. (Szo), 20.33
Nem vagyok benne biztos, hogy jól értettem a kérdést. De ha igen, én a következő gügye megoldást alkalmazom: a legelső lehetőség [OPTION] a Nincs (nálam "Válasszon!"). Ezt css-sel halványszürke betűre és fehér háttérre állítom, a többi (valós) lehetőséget pedig szépen színezem (akár különfélére).