Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript IExplorer错误脚本5009,带有<;表格>;是虫子吗?_Javascript_Html_Google Chrome_Internet Explorer_Firefox - Fatal编程技术网

Javascript IExplorer错误脚本5009,带有<;表格>;是虫子吗?

Javascript IExplorer错误脚本5009,带有<;表格>;是虫子吗?,javascript,html,google-chrome,internet-explorer,firefox,Javascript,Html,Google Chrome,Internet Explorer,Firefox,我有一段代码如下: <!DOCTYPE html> <html> <head><meta charset="UTF-8"/><title>t</title></head> <body> <form id="F1"> <script> function doit() { if(!F1.checkValidity())return;

我有一段代码如下:

<!DOCTYPE html>
<html>
<head><meta charset="UTF-8"/><title>t</title></head>
<body> 
<form id="F1">

    <script>
    function doit()
    {
        if(!F1.checkValidity())return;
        alert("ID="+FName.value); //Do some processing
    }
    </script>

    Enter your name:  <input ID="FName" pattern="[a-zA-Z]+" required ><br />
    <p><button OnClick="doit()"> DO IT</button></p>

</form>
</body>
</html>

T
函数doit()
{
如果(!F1.checkValidity())返回;
警报(“ID=“+FName.value);//进行一些处理
}
输入您的姓名:
做吧

它获取一些输入并在处理数据之前对其进行验证。据报道,它确实符合HTML5。它在Firefox和Chrome中运行良好,但在IExplorer11中不起作用。它说错误脚本5009“FName未定义”。但是,如果删除表单标记,FName将被定义。但是我无法检查表格的有效性


我想知道这是否是一个IExplorer错误,如何修复它。谢谢

输入是表单的子项,而不是文档

我能够在IE中复制这个问题。我通过引用元素F1.FName来解决它,也就是说,作为表单元素的子元素。这在IE、Chrome和Firefox中都有效。我想这是预期的行为,而不是问题,但无法找到支持的参考

if(!F1.checkValidity())return;
alert("ID="+F1.FName.value); //Do some processing

这是一个bug,但对窗口对象的命名属性(这就是您所拥有的)采用一致的方法是相对较新的HTML5特性,因此浏览器实现仍在迎头赶上也就不足为奇了。还有其他处理方法,比如使用
document.getElementById('FName')
,但是@Robert的解决方案似乎不错。