webForumDet fria alternativet
Logga in / Bli medlem

Alternativ till hiddenfield?

JavaScript

7 svar · 233 visningar · startad av Jesper T

Medlem sedan nov. 20017 144 inlägg
Trådstart#1

Så här skulle man kanske kunna göra(som princip) Finns det något smartare sätt utan att behöva använda ett hidden field?

function wopen(varde1,varde2){
alert(varde1);
document.form1.hidden.value=varde2;
}

function w2open(){
alert(document.form1.hidden.value)
}

<a href="#" onClick="wopen('hej','kalle')">klicka!</a>
<a href="#" onClick="w2open()">klicka!</a>
<form name="form1">
<input type="hidden" name="hidden" value="">
</form>
Medlem sedan dec. 20025 483 inlägg
#2

Du kan ju skapa en global variabel:

var global = null;

function wopen(varde1,varde2){
     alert( varde1 );
     global = varde2;
}

function w2open(){
     alert( global );
}

<a href="#" onClick="wopen('hej','kalle')">klicka!</a>
<a href="#" onClick="w2open()">klicka!</a>

:)

Medlem sedan nov. 20017 144 inlägg
#3

Tack, då har jag lärt mig något nytt! :)

Medlem sedan dec. 20025 483 inlägg
#4

:bire

Medlem sedan juni 20004 308 inlägg
#5

Som kuriosa kan nämnas ett en variabel i JavaScript automatiskt är global om du inte specifikt talar om att den skall vara lokal (genom att deklarera den inne i funktionen).

Ex

foo(); bar();
function foo(){
	a="foo";
}
function bar(){
	alert(a);
}

jämfört med

foo(); bar();
function foo(){
	var a="foo";
}
function bar(){
	alert(a);
}
Medlem sedan nov. 20017 144 inlägg
#6

Men den enda skillnaden jag kan se är att du har satt "var" framför variabeln "a". Skall det vara så?

Medlem sedan dec. 20025 483 inlägg
#7

Ja, om du inte använder nyckelordet var när du deklarerar en variabel blir den automatiskt global. Dock hör det till god programmeringsstil att alltid deklarera variabler så Jojoxx kuriosaexempel är ej att rekommendera.

:)

Medlem sedan juni 20004 308 inlägg
#8

Peter S skrev:

Dock hör det till god programmeringsstil att alltid deklarera variabler...

Så sant. Ville bara påpeka det eftersom flertalet script som du hittar på nätet saknar variabeldeklarationer. Vet man då inte skillnaden kan man lätt bli sittande och slita sitt hår i onödan.

268 ms totalt · 4 externa anrop · v20260731065814-full.51f67c91
130 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)