---
title: "jquery, fylla i input fält i annat formulär"
type: "forum-thread"
url: "https://www.webforum.nu/amne/javascript/183695-jquery-fylla-i-input-fält-i-annat-formulär"
topic: "JavaScript"
topic_url: "https://www.webforum.nu/amne/javascript"
author: "aleborg"
published: "2010-06-04T08:55:04.000Z"
updated: "2010-06-07T08:50:54.000Z"
replies: 12
views: 719
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/javascript/183695-jquery-fylla-i-input-fält-i-annat-formulär"
---

# jquery, fylla i input fält i annat formulär

## #1 — aleborg, 2010-06-04T08:55Z

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

```
<form id="ett" name="ett">
    <select id="box1" name="box1">
        <option>abc_123</option>
        <option>abc_456</option>
    </select>
    <select id="box2" name="box2">
        <option>abc_foo</option>
        <option>abc_fighters</option>
    </select>
</form>
<form>
    <input type="hidden" value="" id="boxes" name="boxes" />
    //....
</form>
<form>
    <input type="hidden" value="" id="boxes" name="boxes" />
    //....
</form>
<form>
    <input type="hidden" value="" id="boxes" name="boxes" />
    //....
</form>
<form>
    <input type="hidden" value="" id="boxes" name="boxes" />
    //....
</form>
```

några idéer på hur man löser det?

Permalänk: https://www.webforum.nu/p/183695

## #2 — voigtann1, 2010-06-04T09:35Z

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;
			});
		});
```

?
Eller klonar du första form blocket?

Permalänk: https://www.webforum.nu/p/2239240

## #3 — aleborg, 2010-06-04T10:51Z

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?

Permalänk: https://www.webforum.nu/p/2239242

## #4 — voigtann1, 2010-06-04T11:04Z

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å?

Är det något i stil med:
<http://voigt.se/sandbox/wf/aleborg/select.html>
 Där input boxarna är hidden, mest för visuellt nu.

Permalänk: https://www.webforum.nu/p/2239243

## #5 — aleborg, 2010-06-04T11:30Z

nästan :)
mer som

```
    <select id="box1" name="box1">
        <option value="123">abc_123</option>
        <option value="">abc_</option>
    </select>
    <select id="box2" name="box2">
        <option>abc_foo</option>
        <option>abc_fighters</option>
    </select>
```

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:

```
    <select id="box1" name="box1">
        <option value="www.">http://www.</option>
        <option value="">http://</option>
    </select>
    <select id="box2" name="box2">
        <option value="">-- Välj domän --</option>
        <option value="CsWebSiteLinux|mydomain1.se">mydomain1.se</option>
        <option value="CsWebSiteLinux|mydomain2.se">mydomain2.se</option>
        <option value="CsWebSiteWindows|mydomain3.se">mydomain3.se</option>
        //...
    </select>
```

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

Permalänk: https://www.webforum.nu/p/2239244

## #6 — voigtann1, 2010-06-04T11:50Z

Jag fattar inte (jag som är trög), skall alla input med namnet "selecteddomain\_\*" (ett par st?) få samma värde när man gör ett val i sin select?

Ditt exemepel med domäner, vad skall värdet vara vid en load? "www." ?

Permalänk: https://www.webforum.nu/p/2239247

## #7 — aleborg, 2010-06-04T16:13Z

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.

Permalänk: https://www.webforum.nu/p/2239253

## #8 — voigtann1, 2010-06-04T16:16Z

Vad saknas i exemplet? Skall andra selecten inte ha något värde by default?

Permalänk: https://www.webforum.nu/p/2239254

## #9 — aleborg, 2010-06-04T16:25Z

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

krångligt :)

Permalänk: https://www.webforum.nu/p/2239255

## #10 — voigtann1, 2010-06-04T16:49Z

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?

Permalänk: https://www.webforum.nu/p/2239260

## #11 — aleborg, 2010-06-07T08:35Z

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

Permalänk: https://www.webforum.nu/p/2239504

## #12 — aleborg, 2010-06-07T08:46Z

<http://voigt.se/sandbox/wf/aleborg/select.html>
Den är rätt nu :)
Bara på loaden man ska få till den också, är det så här?

```
	$("select").ready(function() {
		var value = "";
		$("select").each(function() {
			if ($(this).is("[name='domainlist']") && $(this).children().length === 2) {
				$(this).children().last().attr("selected", "selected");
			}
			value += (this.value.indexOf("|") > -1 ? this.value.split("|")[1] : this.value);
		});
		$("input[name*='selecteddomainname_']").each(function() {
			this.value = value;
		});
	}).ready();
```

Permalänk: https://www.webforum.nu/p/2239507

## #13 — voigtann1, 2010-06-07T08:50Z

```
$(function() { /* ... */ });
```

Är DOM-Readyn Så så fort jquery kommer åt DOM objekten så kommer den binda och triggar change() eventet.

Permalänk: https://www.webforum.nu/p/2239508

---

Tråden på webben: https://www.webforum.nu/amne/javascript/183695-jquery-fylla-i-input-fält-i-annat-formulär
