我有一段这样的代码:
<!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错误,我该怎么办呢。谢谢!
答案 0 :(得分:1)
输入是表单的子项而不是文档。
我能够在IE中复制问题。我通过将元素引用为F1.FName来解决它,即作为表单元素的子元素。这适用于IE,Chrome和Firefox。我想这是预期的行为而不是问题,但无法找到支持的参考。
if(!F1.checkValidity())return;
alert("ID="+F1.FName.value); //Do some processing