webForumDet fria alternativet

lägga till värden i input-text fram popup

JavaScript

5 svar · 187 visningar · startad av Smultron

Medlem sedan juli 2002423 inlägg
Frågan#1

Jag har ett popup där jag listar en massa checkboxar.

jag vill att när man kryssar för en textbox ska värdet som den har läggas till i en INPUT-text i "moderframen" för den...

så att den fylls på också...om man kyrssar i flera så läggs det till det ersätts inte.

snälla hjälp mig

Medlem sedan nov. 20017 144 inlägg
#2

Detta är väl kanske inte optimalt eftersom att inte värderna plockas bort om man klickar bort bocken, men, men...

[b]Första sidan:[/b]
<body>
<a href="javascript:void(window.open('iframe.htm','','width=350 height=200'));">Klick!</a><br>
<form name="foo">
<input type="text" name="bar">
</form>
</body>

[b]Popup: [/b]
<body>
<input type="checkbox" onclick="top.window.opener.foo.bar.value+=this.value;" value=" Mamma"><br>
<input type="checkbox" onclick="top.window.opener.foo.bar.value+=this.value;" value=" Pappa"><br>
<input type="checkbox" onclick="top.window.opener.foo.bar.value+=this.value;" value=" Barn"><br>
</body>
Medlem sedan juli 2002423 inlägg
#3

thx, men då vill jag göra så att om man klickar ur så försvinner "värdet" från textbox också, nu lägger den till en ny till närman kryssar ur den

det blir nog lite svårare?

Medlem sedan nov. 20017 144 inlägg
#4

Smultron skrev:

det blir nog lite svårare?

Just, ja. ;)

Medlem sedan juli 2002423 inlägg
#5

hehe ok.

Medlem sedan dec. 20025 483 inlägg
#6

Redigerad

Troligen inte den mest optimala lösningen, men den kanske duger för ditt ändamål.

Anta att ditt formulär heter f och att textfältet heter t i huvudramen, samt att formuläret i popupfönstret heter f. Då kan du använda följande kod i popupfönstret:

<script type="text/javascript">

window.onload = function() {
    var
	elms = document.forms["f"].elements,
	iLen = elms.length,
	mElm = window.opener.document.forms[[b]"f"[/b]].elements[[b]"t"[/b]];

    while ( iLen-->0 ) {
	if ( elms[iLen].type == "checkbox" ) {
	    elms[iLen].onclick = function() {
		if ( mElm.value.indexOf( this.value ) == -1 )
		    mElm.value += this.value;
		else
		    mElm.value = mElm.value.replace( new RegExp( this.value ), "" );
	    }
	}
    }
}

</script>

<form name="f">
    <input type="checkbox" value="c1">
    <input type="checkbox" value="c2">
    <input type="checkbox" value="c3">
</form>

:)

261 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)