验证在Firefox中不起作用,在IE中运行良好

时间:2013-01-28 16:03:33

标签: javascript asp.net visual-studio-2010 validation firefox

我在客户端有一个电子邮件验证码。它可以在IE中正常工作,但在某种程度上不会在Firefox中显示错误消息。

以下是代码:

<asp:ImageButton ID="btnLink" runat="server" AlternateText="ClickHere" OnClientClick="return onCClick();" OnClick="btnLink_Click"/>  
<div id="errorEmail" runat="server"></div>

//function to validate
        function onCClick() {
//clear error message
            document.getElementById('<%=errorEmail.ClientID%>').innerText = "";
//if validation fails
            if (validateEmail() != true) {
//show error message
                document.getElementById('<%=errorEmail.ClientID%>').innerText = "Invalid Email Address.";
                return false;
            }
}

function validateEmail() {
            var emailId = document.getElementById('<%=txtEmail.ClientID%>').value;
            var emailPattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
            return emailPattern.test(emailId);
        }

有什么我应该照顾的吗?我的错误消息div设置为空白但在任何地方都不可见(在这种情况下,javascript也不会起作用)

2 个答案:

答案 0 :(得分:1)

innerText不是跨浏览器,firefox使用textContent

您可以使用以下功能:

function changeText(elem, changeVal) {
    if ((elem.textContent) && (typeof (elem.textContent) != "undefined")) {
        elem.textContent = changeVal;
    } else {
        elem.innerText = changeVal;
    }
}

或只使用innerHTML

答案 1 :(得分:0)

最好你尝试使用innerHTML ..它会起作用..

document.getElementById('errorEmailAddress').innerHTML = "Error Message";