繁体   English   中英

IE7抱怨JavaScript中的标签ID

[英]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.getElementByIddocument.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM