【发布时间】:2010-02-21 06:16:27
【问题描述】:
我在使用带有单选按钮的 innerHTML 时遇到了问题。
<table align="center">
<div class='main'>
<span id="js" class='info'>
<label><input type="radio" name="js" value="0" size="<?php echo $row['size']; ?>" onclick="js(this.value, this.size);" /><img src="arrowup.png"/></label>
<br />
<label><input type="radio" name="js" value="1" size="<?php echo $row['size']; ?>" onclick="js(this.value, this.size);" /><img src="arrowdown.png"/></label>
</span>
</div>
</table>
我的 .js 看起来像这样:
var xmlhttp;
function getVote(a,b) {
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null) {
alert ("Browser does not support HTTP Request");
return;
}
var url="js.php";
url=url+"?js="+a;
url=url+"&id="+b;
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
function stateChanged() {
if (xmlhttp.readyState==4) {
document.getElementById("js").innerHTML=xmlhttp.responseText;
}
}
function GetXmlHttpObject() {
var objXMLHttp=null;
if (window.XMLHttpRequest) {
objXMLHttp=new XMLHttpRequest();
}
else if (window.ActiveXObject) {
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
return objXMLHttp;
}
这仅在 IE 中不起作用!有什么帮助吗?
【问题讨论】:
-
您是否检查过
document.getElementById("js")是否正在查找元素? innerHTML 可能不是问题。我认为如果您的标记无效,getElementById 可能会失败,如果您不提供文档类型等(如果有的话),这很难说清楚。此外,getElementById 应该返回一个元素——您是否期望它返回一个包含带有id="js"和带有name="js"的跨度的集合是一样的。 -
有关方式名称和 id 冲突存在问题的示例,请参见此处:456bereastreet.com/archive/200802/…
-
@Andrew Moore:
size="<?php echo $row['size']; ?>"与PHP无关? -
@John Saunders:这是一个非常非常小的大难题。而且我认为那块已经放错了位置,不需要解决这个特殊的难题。
-
@Andrew:它可能不需要,但它应该是一个标签。不过,如果你再把它取下来,我不会把它放回去的。
标签: php javascript internet-explorer innerhtml