带有<form>的IExplorer错误脚本5009是错误的?

时间:2015-05-30 05:26:18

标签: javascript html5 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;
        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>

在处理数据之前获取一些输入并验证它。根据{{​​3}},它确实符合HTML5。它在Firefox和Chrome中运行良好,但在IExplorer 11中运行不正常。它表示ERROR SCRIPT 5009“FName未定义”。但是,如果我删除表单标记,则会定义FName。但后来我无法检查表格的有效性。

我想知道这是否是IExplorer错误,我该怎么办呢。谢谢!

1 个答案:

答案 0 :(得分:1)

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

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

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