[英]IE7 complaining about label ID in javascript
好的,我正在开发一个简单的程序来执行xmlhttprequests,这样我就可以了解它们的工作方式。 在该页面上,我有一个简单的文本框,一个标签和一个按钮。 单击该按钮时,它会通过javascript方法将请求发送到另一个页面,并将响应存储在标签中。
(这是体内的所有代码)
<form id="form1" runat="server">
<div>
<input type="text" id="text1" value="StuffInTheBox" name="text1"/>
<label id="label1">Please Enter Name.</label>
</div>
</form>
<button id="button1" onclick="checkName(text1.value,'')">BUTTON</button>
这在谷歌浏览器中完美运行。 但是当需要在IE7中进行尝试时,它给了我一个错误。 它说:“错误:'text1'未定义”。 我一直在尝试调整所有可以查看的内容是否有所帮助,但现在我有点迷失了。
任何帮助将非常感激
编辑:每个请求的检查名称功能
该方法调用loadXMLDoc来创建xmlhttprequest对象,从而为使用ActiveX的旧版IE和具有本机的现代浏览器进行构建。 它还创建了一个监视状态变化的方法,如果成功完成,它将使用checkName('',results)调用checkname。
function checkName(input, response)
{
if (response != ''){
// Response mode
message = document.getElementById('label1');
message.innerHTML = response;
}else{
// Input mode
loadXMLDoc("http://localhost/xmlTest/Return.aspx","input="+input);
}
}
在您的JavaScript“ checkName(text1.value,'')”中,尚不清楚正在引用什么text1.value。 您假设它引用的是您在HTML中声明的DOM对象,而FireFox似乎也做出了该声明,而IE没有。 text1可能很容易成为对JavaScript代码中先前声明的对象的引用。
var text1 = {value: ""};
坦白说,我很惊讶FireFox没有抛出错误。
当引用DOM对象(即HTML元素)时,您需要使用document.getElementById或document.getElementsByName方法。
以下示例已经过测试,并且可以在FireFox和IE中使用,并且我假设也可以在Chrome,Safari和Opera中使用。
<form id="form1" runat="server">
<div>
<input type="text" id="text1" value="StuffInTheBox" name="text1"/>
<label id="label1">Please Enter Name.</label>
</div>
</form>
<button id="button1" onclick="checkName(document.getElementById('text1').value,'')">BUTTON</button>
“ text1”是输入的ID,但您尚未声明JavaScript中的text1变量引用了该变量。
也许这对您有用:
<button id="button1" onclick="checkName(document.getElementById('text1').value,'')">BUTTON</button>
在尝试查找输入值之前,它使用document.getElementById检索输入。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.