Jag har en sida som består av ett antal olika formulär
det första formuläret har 2 st dropdown boxar, vi kallar dem "box1" och "box2"
i övriga formulär så har jag i varje formulär en gömd input som heter "boxes", samma namn i alla de övrig formulären.
Denna gömda input "boxes" vill jag fylla med värdena från båda boxarna "box1" och "box2", dvs boxes.value=box1+box2 när man ändrar vardet i någon av dessa 2 dropdown boxar.
Hur kan jag göra detta med t ex jquery?
Jag har bara namnet på första formuläret och jag behöver dessutom ta bort delar från båda dropdownerna så att nedanstående exempel skulle kunna generera följande resultat i boxarna "boxes": 123fighters
Nu så är detta inte riktigt html du skickar men bara ett tips är att id="boxes" kommer inte fungera ;)
Men skall alla hidden element få samma värde som box1+box2 har?
$("select").change(function() {
var value = "";
$("select").each(function() {
value+=this.value.split("_")[1]; //xxx_yyy only get 'yyy'
});
$("input[name='boxes']").each(function(){
this.value=value;
});
});
Jag har en loop som sätter namnet i stil boxes_{uniquerow} och behöver bara ändra då till $("input[name*='boxes_']") gissar jag
Men ett annat problem, första dropdownen innehåller 2 poster bara ena med ett värde och andra är tomt, vilket ger mig undefined, hur kommer jag runt det?
En annan sak, hur kan jag även få det här att hända på sidans första laddning?
sätt även samma kod som skall köras vid load(), eller triggar change() eventet på dina select vid onload. vad skall hända om det ena värdet är tomt? skall den köra skriptet ändå?
så om första valet i båda väljs så ska det bli 123foo, om andra valet samt första väljs så ska det bli foo endast, så även om value är tomt så ska det bli action.
Tittar man till verkligheten så står det:
vilket ska ge mydomainX.se eller https://www.mydomainX.se i en inputbox som heter selecteddomain_{unique ident} :)
Samma kodd ska köras vid load MEN det kan finnas risk att inga fler formulär finns då, beroende på antal domäner det finns i listan
Du är rätt ute här: http://voigt.se/sandbox/wf/aleborg/select.html
Men ett av värdena kan vara tomt i första selecten och ja, www ska vara standard. Alla input med namnet "selecteddomain_*" (ett par st) ska få samma värde, det värdet från de två selectboxarna.
i exemplet saknas möjligheten att ett värde kan vara tomt.
Reglerna är så här, i ruta ett är alltid "www." valt som standard, i ruta 2 är första domänen vald som standard om det bara finns en domän, finns det flera domäner så är "--Välj domän --" valt initialt men då finns inte några boxar, dvs "selecteddomain_"-fälten, de dyker upp först när man har valt en domän.
Sammanfattning
1. www. alltid valt som standard
2. Om det finns en domän så är den vald som standard och "selecteddomain_"-fälten finns och ska fyllas redan vid onload
3. Om flera domäner finns så är "-- Välj domän --" valt som standard, "selecteddomain_"-fälten finns inte och inget behövs fyllas i på onload
4. När domän eller www ändras så ska alla "selecteddomain_"-fälten uppdateras med detta värdet, dvs www.domänen.se eller bara domänen.se
1. http:// är tom i koden ovan - Är det någon miss där?
2. Om andra selectboxens längd är 2 (-- Välj domän -- + domän1.se) så skall domän1.se vara markerad?
3. Om den har en större längd än två (-- Väljd domän, domän1, domän2) så skall -- välj domän -- vara markerad
2 och 3 lägger du in attributet selected="selected" på den option du vill ha markerad default (server kod), eller det har du inte tillgång till att kunna modifiera?
1. http:// är tom i koden ovan - Är det någon miss där?
Nej, den ska vara tom, dvs domänen blir domänen.se, väljer man det andra alternativet så blir det www.domänen.se
2. Om andra selectboxens längd är 2 (-- Välj domän -- + domän1.se) så skall domän1.se vara markerad?
Korrekt, det görs i koden per automatik när allt laddas in från databasen.
3. Om den har en större längd än två (-- Väljd domän, domän1, domän2) så skall -- välj domän -- vara markerad
Korrekt, även det görs per automatik
det stora problemet är som sagt att fylla selecteddomain_{unique ident} när sidan laddas och när förändring sker i något av dropdown-boxarna