Just nu i M3-nätverket
Jump to content

Skicka information mellan två fönster i Firefox


lisbet

Recommended Posts

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]

Link to comment
Share on other sites

Håller med fhe. Testa:

 

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

 

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

"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]

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

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.

 

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...