Forum Moderators: open

Message Too Old, No Replies

Strange IE behavior when changing div content

         

Tkdka

12:00 am on Nov 27, 2006 (gmt 0)

10+ Year Member



<edit> The title should have been "Strange IE behavior when changing div content" </edit>

I’m trying to change the innerHTML of a div. I want users to be able to click on one of several radio buttons and have the div change. This works fine in Firefox, but IE has a strange quirk. The first time a radio button is checked, everything is fine. After that, the div won’t change. The code is below. Any suggestions would be appreciated.

<html>
<head>
<script type="text/javascript">

var HTTPobjectRequet=false
if (window.XMLHttpRequest) {HTTPobjectRequet= new XMLHttpRequest();}
else if (window.ActiveXObject) {} {HTTPobjectRequet=new ActiveXObject("Microsoft.XMLHTTP");}

function setForm(x)
{

if(HTTPobjectRequet){
var obj=document.getElementById("Layer1");

HTTPobjectRequet.onreadystatechange=function()
{
if (HTTPobjectRequet.readyState==4 ) {
obj.innerHTML=HTTPobjectRequet.responseText;
}

}
HTTPobjectRequet.open("GET",x);
HTTPobjectRequet.send(null)
}

}

</script>

<style type="text/css">
<!--
#Layer1 {
position:absolute;
width:200px;
height:115px;
z-index:1;
left: 4px;
top: 150px;
}
-->
</style>
</head>

<div id="Layer1"> </div>
<p>
<form>
<label>
<input type="radio" name="MethodSelector" value="minimize" onClick="setForm('minimize.txt')">
Minimize Cost</label>
<br>
<label>
<input type="radio" name="MethodSelector" value="limit" onClick="setForm('limit.txt')">
Limit Stockouts</label>
<br>
</p>
</form>

</body>

[edited by: Tkdka at 12:02 am (utc) on Nov. 27, 2006]

Tkdka

2:06 pm on Nov 27, 2006 (gmt 0)

10+ Year Member



After sleeping on it a 2nd night and pounding my desk a few times, I figured it out. In IE, I had to set the HTTPobjectRequet variable to a new activeX object before i could use it to open a different file. Hope this helps other newbies like me.

<html>
<head>
<script type="text/javascript">
var HTTPobjectRequet=false
var obj

if (window.XMLHttpRequest){
HTTPobjectRequet= new XMLHttpRequest();
}
else if (window.ActiveXObject) {
HTTPobjectRequet=new
ActiveXObject("Microsoft.XMLHTTP");
}


function setForm(x)
{

if (window.ActiveXObject) {
HTTPobjectRequet=new ActiveXObject("Microsoft.XMLHTTP");}
if(HTTPobjectRequet){
HTTPobjectRequet.onreadystatechange=function()
{
...