webForumDet fria alternativet

Mer formulär problem

7 svar · 240 visningar · startad av fredriksk

fredrikskMedlem sedan maj 2001210 inlägg
#1

Nu försöker jag att sätta texten på en Select komponent så här...

document.form.fotoNo.options.text= "Foto" + i

Men serrru den går han inte på... Vad gör jag för fel nurå?

------------------
hmm.. äh det får stå så här tills jag kommer på nått bättre...

JohnsenMedlem sedan juli 2000718 inlägg
#2

Känns det nödvändigt att dubbelpostera?

Om du visar din kod där skript och formulär ingår, skall vi nog komma fram till en lösning.

------------------
- J-O-H-N-S-E-N -
------------------

fredrikskMedlem sedan maj 2001210 inlägg
#3

Jo tanken var att jag skulle fimpa den andra tråden men det gick visst inte så bra... Var inte tänkt att det skulle bli en dubbelpost inte =)

skall försöka förtydliga det hela lite.. Jo alltså jag har ett formulär som heter form som ligger i ett lager som heter lager. Sedan har jag ett javascript (funktion) som skall uppdatera texten som visas på en selectkomponent som heter fotoNo. Jag försöker göra detta så här:

document.form.fotoNo.options.text= "Foto" + (i+1);

Vill alltså att texten Foto + en siffra skall visas på platsen på select komponenten.. Sedan skall denna loopa igenom ett antal gånger och för varje varv lägga till en ny text (Foto + en ny siffra)på nästa plats. men nånting är riktigt fel...

Hela loopen ser ut så här:

for(i=0; i<noOfFotos; i++){
fotografier = new Image();
fotografier.src = path + serie + "thumb" + i + ".jpg";
document.form.fotoNo.options.text= "Foto" + (i+1); //sätter text i fotoVal rutan

Hoppas det blev lite tydligare nu. =)

------------------
hmm.. äh det får stå så här tills jag kommer på nått bättre...

JohnsenMedlem sedan juli 2000718 inlägg
#4

Det är nog inget fel på din loop, däremot undrar jag om antal options i selecten stämmer överens med noOfFotos i loopen.
Kolla nedanstående alternativ.

<script>
function fyll_i1(){
var sel= (document.layers)? document.layers["lager"].document.foo.bar.options : document.foo.bar.options; 
var antal = sel.length; //viktigt att veta!!!
for(var i=0; i<antal; i++){ sel[i].text= "Foto"+(i+1); }
} 
</script>

<div id="lager" style="position:absolute; left:10;">
<a href="javascript:fyll_i1();">Fyll i</a>
<form name="foo">
<select name="bar">
<option value="0"> . </option>
<option value="1"> . </option>
<option value="2"> . </option>
</select>
</form>
</div>
<script>
function fyll_i2(){
var sel= (document.layers)? document.layers["lager2"].document.foo1.bar1.options : document.foo1.bar1.options; 
var antal = 10; 
sel.length = antal; //Sätt antal options.
for(var i=0; i<antal; i++){ sel[i].value= i; sel[i].text= "Foto"+(i+1); }
} 
</script>

<div id="lager2" style="position:absolute; left:100;">
<a href="javascript:fyll_i2();">Fyll i</a>
<form name="foo1">
<select name="bar1">
<option>Blankt</option>
</select>
</form>
</div>

------------------
- J-O-H-N-S-E-N -
------------------

fredrikskMedlem sedan maj 2001210 inlägg
#5

Ok...

Har jag förstått saken rätt när jag säger att man måste sätta hur många alternativ man måste ha innan man fyller i dem? Och sen måste jag ange vilket lager formuläret ligger i?

------------------
hmm.. äh det får stå så här tills jag kommer på nått bättre...

fredrikskMedlem sedan maj 2001210 inlägg
#6

Hmm.. knepigt det här.. får inte ordning på det riktigt...
Jag har lagt upp sidan här... http://home.bip.net/fredrikskoldheimer/testproblem2/test.htm

Blir mycket taksam för all hjälp =)

------------------
hmm.. äh det får stå så här tills jag kommer på nått bättre...

fredrikskMedlem sedan maj 2001210 inlägg
#7

Jag löste det!!!
Tack för all hjälp... ett steg närmare den totala lösningen =)

------------------
hmm.. äh det får stå så här tills jag kommer på nått bättre...

fredrikskMedlem sedan maj 2001210 inlägg
#8

Ok... nu har jag kört fast igen... =/

Nu försöker jag animera lager. Men nått funkar inte som det är tänkt...

Jag har 2 lager som skall animeras. De heter foto1layer och foto2layer

sen försöker jag så här...

function moveLayers(move)
{
if(move == "left")
{
for(i=0; i<322 ; i++)
{
document.foto1layer.pageX = document.foto1layer.pageX - 1;
document.foto2layer.pageX = document.foto2layer.pageX - 1;
}
}

if(move == "right")
{
 	for(i=0; i\<322 ; i++)
	{
 	 document.foto1layer.pageX = document.foto1layer.pageX + 1;
	 document.foto2layer.pageX = document.foto2layer.pageX + 1;
	}
}

}

Jag får felmeddelandet att document.foto1layer är inte ett ojekt.

Hela koden kan beskådas på http://home.bip.net/fredrikskoldheimer/testproblem2/test.htm

------------------
hmm.. äh det får stå så här tills jag kommer på nått bättre...

Genererad på 380 ms · cache AV · v20260730165559-full.f96bc7eb