2012-11-09 28 views
0

我有一些JavaScript将做一些基本的错误检查我的登记表上(确保填写了所有字段,密码匹配等),并提交按钮被禁用,直到字段正确输入。表单上方还有一个div,用于显示表单的哪些位需要更正。的JavaScript将无法在Internet Explorer中运行10

的代码运行在谷歌浏览器很好,但使用IE10似乎只运行一半的JavaScript。除了安全问题的答案之外,它打印所有内容的错误消息,即使所有字段都正确(JavaScript函数的最后两部分),提交按钮仍然保持禁用状态。

页面可以发现here,以及JavaScript函数包含以下代码:

function timerFunc() { 
    var success = 1; 
    errors.innerHTML = ""; 
    if (fname.value == "") { 
     errors.innerHTML = errors.innerHTML + "<p>Forename Required.</p>"; 
     success = 0; 
    } 
    if (sname.value == "") { 
     errors.innerHTML = errors.innerHTML + "<p>Surname Required.</p>"; 
     success = 0; 
    } 
    if (email.value == "") { 
     errors.innerHTML = errors.innerHTML + "<p>Email Required.</p>"; 
     success = 0; 
    } else { 
     success = verifyEmail(email.value); 
    } 
    if (uname.value == "") { 
     errors.innerHTML = errors.innerHTML + "<p>Username Required.</p>"; 
     success = 0; 
    } 
    if (pword.value == "") { 
     errors.innerHTML = errors.innerHTML + "<p>Password Required.</p>"; 
     success = 0; 
    } else if (pword.value.length < 8) { 
     errors.innerHTML = errors.innerHTML + "<p>Password Must Have 8 Characters.</p>"; 
     success = 0; 
    } 
    if ((pword1.value != "") && (pword1.value != pword.value)) { 
     errors.innerHTML = errors.innerHTML + "<p>Passwords Don't Match.</p>"; 
     success = 0; 
    } 
    if (seca.value == "") { 
     errors.innerHTML = errors.innerHTML + "<p>Security Answer Required.</p>"; 
     success = 0; 
    } 
    if (success == 1) { 
     submit.disabled = false; 
    } else { 
     submit.disabled = true; 
    } 
} 

这可能是很简单的东西来修复它,但我不明白为什么它完美的作品在Chrome和不IE浏览器。在此先感谢,杰克。

+1

'errors'在较高的范围定义了在IE9的朋友吗?使用F12打开IE的错误控制台。任何错误?发布的代码在语法上是有效的,但是一些变量可能超出范围。 –

+0

...和一些您的DOM参考可能被打破。你不显示它们是如何定义的。 –

+0

确保您通过'document.getElementById'选择了所有元素,而不依赖于某些浏览器创建的非标准全局变量。 – jbabey

回答

1

在RegFunc尝试加入这一行:

pword1 = document.getElementById("pword1"); 

pword1没有定义 - 这是无限打印在控制台上 - F12是+

+0

谢谢塞巴斯蒂安,刚刚看到那个错误 - 过了漫长的一天!你知道为什么它仍然在没有声明的Chrome上运行吗? – crazyloonybin

+1

我认为这是一个“标准”,所有具有ID的元素都可以自动作为全局变量来使用 - 非常烦人......参见这里:http://stackoverflow.com/questions/6381425/should-the-id-of-elements -be-made-global-variables- – Sebastian

+0

啊有趣的是,有些实现方法,有些则不 - 感谢信息! – crazyloonybin

相关问题