JS dinamikus űrlap kialakítás
Sziasztok!
Általában ha van valami problémám gyorsan megtalálom a megoldást (vagy elnéztem valami, vagy gondolkodni kell egy kicsit még rajta), de mivel a JavaScript-hez őszintén szólva egyáltalán nem értek, ezért fordulok hozzátok.
Szóval: van nekem egy űrlapom, amiben egy select-ből a felhasználónak választhat egy mezőt. De mivel fenn áll annak a lehetősége, hogy az ő választása, még nincs benne a listában, engedni szeretném, hogy megadhasson új elemet is, ami a feldolgozás után természetesen, majd bekerül a selectbe.
(Lényegében egy olyanra lenne szükségem minta gmail regsztrációnál volt a biztonsági kérdés megadása. Voltak előre megadott kérdések plusz egy "megadom a saját kérdésemet", amit ha kiválasztottam, akkor megjelent egy input amibe begépelhettem a sajátom)
Namost én találtam itt egy scriptet, ami már majdnem (!) lefedi azt amit én szeretnék, csak hát ugye nem select-el, hanem radio-val oldja meg.
eddig én itt járokHa van valami öttletetek, hogy hogyan lehetne működésre bírni ezt a dolgot, vagy valakinek létezik már erre valami megoldása, akkor megköszönném a segítséget.
■ Általában ha van valami problémám gyorsan megtalálom a megoldást (vagy elnéztem valami, vagy gondolkodni kell egy kicsit még rajta), de mivel a JavaScript-hez őszintén szólva egyáltalán nem értek, ezért fordulok hozzátok.
Szóval: van nekem egy űrlapom, amiben egy select-ből a felhasználónak választhat egy mezőt. De mivel fenn áll annak a lehetősége, hogy az ő választása, még nincs benne a listában, engedni szeretném, hogy megadhasson új elemet is, ami a feldolgozás után természetesen, majd bekerül a selectbe.
(Lényegében egy olyanra lenne szükségem minta gmail regsztrációnál volt a biztonsági kérdés megadása. Voltak előre megadott kérdések plusz egy "megadom a saját kérdésemet", amit ha kiválasztottam, akkor megjelent egy input amibe begépelhettem a sajátom)
Namost én találtam itt egy scriptet, ami már majdnem (!) lefedi azt amit én szeretnék, csak hát ugye nem select-el, hanem radio-val oldja meg.
eddig én itt járok
<form name="fm" action"valami" method="post">
<select name="sorozatok">
<option selected="selected" disabled="disabled">-- Sorozat választása --</option>
<option value="1" onselect="toggleT('uj_sorozat','h')">első sorozat</option>
<option value="2" onselect="toggleT('uj_sorozat','h')">második sorozat</option>
<option value="3" onselect="toggleT('uj_sorozat','h')">harmadik sorozat</option>
<option value="" onselect="toggleT('uj_sorozat','s')">nincs még ilyen</option>
</select>
<span id="uj_sorozat" style="visibility:hidden;position:relative;top:0;left:0;">
Sorozat címe<br/><input type="text" name="sorozat_cim"/><br/><br/>
Sorozat ISSN<br/><input type="text" name="issn"/>
</span>
</form>
<script type=text/javascript>
var isIE=document.all?true:false;
var isDOM=document.getElementById?true:false;
var isNS4=document.layers?true:false;
/* _w : which ID (1) or (2) */
/* _h : (h)ide or (s)how */
function toggleT(_w,_h) {
if (isDOM)
{
if (_h=='s') document.getElementById(_w).style.visibility='visible';
if (_h=='h') document.getElementById(_w).style.visibility='hidden';
}
else if (isIE) {
if (_h=='s') eval("document.all."+_w+".style.visibility='visible';");
if (_h=='h') eval("document.all."+_w+".style.visibility='hidden';");
}
else if(isNS4)
{
if (_h=='s') eval("document.layers['"+_w+"'].visibility='show';");
if (_h=='h') eval("document.layers['"+_w+"'].visibility='hide';");
}
}
</script>
Kell a JS?
a selectbe felvennék a végére egy újabb elemet (új elem felvitele), és ha azt jelöli ki, akkor a mellette levő mezőbe beírhatja az új elem nevét.
Egyszerű, de nagyszerű.
--------
Poetro
majdnem ezt szeretném
onselect?
Event handler for Text,Textarea
The onSelect event handler is used to execute specified JavaScript code whenever the user selects some of the text within a text or textarea field.
OnClick-el megy
amugy a w3schools oldalán találtam az onselect-et. de megint megnéztem, és tényleg nincs ilyen tulajdonsága :(
onChange?
--------
Poetro
nem nyert
de mmár tudom hgoy hol kell nézni, és az optionnak nem lehet tulajdonsága az onChange sem:
onclick, ondblclick, onmousedown, onmouseup, onmouseover, onmousemove, onmouseout, onkeypress, onkeydown, onkeyup
Ezek közül, úgy gondolom, hogy még az onClick felel meg a legjobban nekem. Vagy van valami jobb megoldás, ötlet?
Nem az option-nek kell ez az event, hanem a select-nek
Ha a megfelelő a value értéke a selectnek, akkor megjeleníted a mezőt.
Ha olyan böngésző, ami még nem ismeri a value tulajdonságot, akkor más trükkök is vannak. options[selectedIndex].value .
--------
Poetro
Ez igen szakszerű válasznak tűnik :)
kb. az elméletét értem, hogy mit kellene csinálni, de olyan problémák kerülnek ekkor felszinre, hogy pl.: hogy nézem meg hogy mi lett kijelölve?
many thx
egy kis segítség:
Köszönet és tanács kérés
és ahogy látom nem is kell neki az a csúnya 20 soros script sem...
tényleg! nem tudtok valami olyan tutorial oldalt, ahol az ekkora JS lámák, mint én, egy kis tudást szippanthatnak az agyukba? (na ezt jól megmondtam :) )
mert, (ahogy én látom), ugyan az a baj, a netes tutorialokkal, mint a könyvekkel... vannak olyanok amik tényleg az alapoknál kezdik (mondjuk javascriptben ezt én nem találom, mondkuk nagyon nem is kerestem még eddig), de egy kicsit túlzásba esve ("itt kell bekapcsolni a gépet", meg "így épül fel egy html oldal") meg van a másik véglet, amit már a guruk sem nagyon értenek, mert annyira szakszövegnek van megírva.
szóval, hol találok valami olyan szájbarágós, esetleg magyar nyelvű JS tutorialt, ami kezdésnek jó lenne? mert ha már kezdem kapsgálni akkor megértem az angolt is. de amíg nem értem még magyarul sem nagyon nehéz.
és mégegyszer köszi...