Just nu i M3-nätverket
Gå till innehåll

Skicka information mellan två fönster i Firefox


lisbet

Rekommendera Poster

Hej,

 

jag har ett formulär där man från ett visst fält öppnar ett popup-fönster (ReqDependency.asp) och väljer ett alternativ i en rullgardinslista. ID't och texten för det valda alternativet ska när man klickar på en spara-knapp skickas tillbaka till fältet i det ursprunliga fönstret (ReqEdit.asp). Det fungerar jättebra i IE men det går lite sämre i Firefox.

 

Man kan öppna popupen och välja ett värde i rullgardinslistan, men när man klickar på spara-knappen händer ingenting.

 

Här kommer koden för de två aktuella delarna.

[log]ReqEdit.asp

<tr BGCOLOR=[GRÅ]"#ffffff"[/GRÅ]>
<td valign=[GRÅ]"top"[/GRÅ] width=[GRÅ]"100"[/GRÅ]>Beroende</td>
<td><input type=[GRÅ]"hidden"[/GRÅ] name=[GRÅ]"cboRequirementParentID"[/GRÅ] value=[GRÅ]"-1"[/GRÅ]>Välj ett krav genom att klicka på knappen.
<br><input type=[GRÅ]"text"[/GRÅ] readonly name=[GRÅ]"readonlycboRequirementParentID"[/GRÅ] size=[GRÅ]"30"[/GRÅ] value=[GRÅ]""[/GRÅ]>  <input type=[GRÅ]"button"[/GRÅ] [color="#0000ff"]Class[/color]=[GRÅ]"button"[/GRÅ] name=[GRÅ]"cmdDependent"[/GRÅ] value=[GRÅ]"..."[/GRÅ] onClick=[color="#006400"]'javascript:popUpDependency([GRÅ]"ReqDependency.asp?fieldid=cboRequirementParentID&parentid=-1&newparentid=-1&currentid=-1&ShowClose=True"[/GRÅ], 550, 600);'>[/color]
</td>
<td align=[GRÅ]"top"[/GRÅ]> </td>
</tr>

[/log]

 

[log]ReqDependency.asp

//[color="#0000ff"]Function[/color] [color="#0000ff"]To[/color] update page ReqEdit.asp [color="#0000ff"]With[/color] result from [color="#0000ff"]Select[/color].
[color="#0000ff"]Function[/color] funcUpdate() {
var form = document.frmRequirements;
var value = [GRÅ]""[/GRÅ];
var text = [GRÅ]""[/GRÅ];
value = form.cboParent.value;
[color="#0000ff"]If[/color](value !=[GRÅ]"-1"[/GRÅ]) {
	text = form.cboParent.options(form.cboParent.selectedIndex).text;
}
[color="#0000ff"]Else[/color] {
	text = [GRÅ]""[/GRÅ]
}
opener.document.frmRequirement.cboRequirementParentID.value = value;
opener.document.frmRequirement.readonlycboRequirementParentID.value = text;
window.close();
}

[/log]

 

Är det mina ramar som stökar till det i Firefox?

 

Tack för hjälpen

/Lisbet

 

[inlägget ändrat 2004-11-23 17:27:13 av lisbet]

[inlägget ändrat 2004-11-23 17:27:54 av lisbet]

Länk till kommentar
Dela på andra webbplatser

Håller med fhe. Testa:

 

opener.document.getElementById([GRÅ]"cboRequirementParentID"[/GRÅ]).value&
nbsp;= value;
opener.document.getElementById([GRÅ]"readonlycboRequirementParentID"[/GRÅ]).value = text;

 

Länk till kommentar
Dela på andra webbplatser

Jag har provat med getElementByID men det blir tyvärr ingen skillnad.

 

Jag fick ett tips om att kolla om jag fick något meddelande i javascript-konsollen och där står det "form.cboParent.options is not a function". Hur kan man skriva det på ett annat sätt?

 

Det jag vill ha med från rullgardinslistan är både värdet och texten. Kan man göra det på något annat sätt?

 

/Lisbet

 

Länk till kommentar
Dela på andra webbplatser

"form.cboParent.options is not a function". Hur kan man skriva det på ett annat sätt?

text = form.cboParent.options(form.cboParent.selectedIndex).text

På rätt sätt? :-)

options är en vektor, för att indexera sig i en vektor använder man hakparenteser. Koden ovan borde alltså vara:

text = form.cboParent.options[form.cboParent.selectedIndex].text

Fortfarande är det naturligtvis bäst om du använder getElementById().

 

[inlägget ändrat 2004-11-24 09:02:07 av fhe]

Länk till kommentar
Dela på andra webbplatser

Hej,

 

tack så jättemycket för hjälpen. Nu har jag tagit mig förbi just det problemet, men då kommer ju nästa.

 

Jag gjorde som du föreslog med getElementByID och som Anjuna Moon skrev ut i klartext

opener.document.getElementByID([GRÅ]"cboRequirementParentID"[/GRÅ]).value = value;
opener.document.getElementByID([GRÅ]"readonlycboRequirementParentID"[/GRÅ]).value = text;

Nu verar det vara dessa rader som den klagar på "opener.document.getElementByID is not a function". Vad jag kan se på din länk så är det korrekt skrivet, men jag kanske missar något återigen ...

 

/Lisbet

 

Länk till kommentar
Dela på andra webbplatser

Testa getElementById istället för getElementByID

Dessutom måste du nog sätta ett id också, vad jag kan se i den kod du klistrade in tidigare så har du bara name= och inte id=

 

OT: Kan inte någon moderator flytta det här till Javascript istället, det har ju ingenting med ASP att göra. Säkert större chans att lisbet får bra svar där.

 

Länk till kommentar
Dela på andra webbplatser

Tack så jättemycket för hjälpen :-)

 

Även om det hamnade i fel forum så hade du helt rätt. Det som saknades var mycket riktigt id= .

 

/Lisbet

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...