Javascript验证未验证

时间:2014-05-06 08:18:41

标签: javascript validation

您好,我试图让我的JS验证我的联系表格,并提供以下要求......

尝试使用XHTML1.0

3 个答案:

答案 0 :(得分:0)

此代码有错误:

  

电子邮件未定义   在线:

    var valid = email.match(/^[a-zA-Z0-9\.]+@([a-zA-Z0-9\.-]){1,}\.[a-z]{2,4}$/);

这个html代码不正确; p

<input id="text" type="email" />

我认为你的意思是:

 <input id="email" type="text" />

答案 1 :(得分:0)

存在很多问题,调试的第一步是打开开发人员控制台(F12)并观察错误消息。

Working fiddle

的变化:

  • 删除导致错误的var valid = email.match....,并且永远不会使用返回值。
  • 更改jsfiddle以在<head>中运行而不是onload,因为您需要内联事件处理程序,这些处理程序需要函数位于全局范围内才能访问。
  • 将处理元素的所有代码移动到onload函数中,因为它甚至在呈现DOM元素之前尝试访问它们。
  • 将手机输入ID从text1更改为phone
  • 删除隐藏电话号码输入的行,因为没有意义。

更新的代码:

function elem(id) {
    return document.getElementById(id);
};


window.onload = function () {
    document.querySelector("#RadioGroup1_0").click();

    var form = document.getElementById('form');
    form.onsubmit = function (e) {
        var rules = [
            ['first-name', elem('first-name').value.length > 0],
            ['last-name', elem('last-name').value.length > 0],
            ['phone', elem('phone').value.length > 0 && /^(\+\d{1,2})?[\d ()-]+$/.test(elem('phone').value)]
        ];

        function alpha(e) {
            var k;
            document.all ? k = e.keyCode : k = e.which;
            return ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8);
        }

        for (var i = 0; i < rules.length; i++) {
            if (!rules[i][1]) {
                var parent = elem(rules[i][0]).parentNode,
                    message = 'Please check your ' + (parent.textContent || parent.innerText).replace(/^\s*(.*?)\s*$/, '$1').slice(0, -1).toLowerCase() + '.';

                alert(message);

                return false;
            }
        }

        return true;
    };
}


function onlyAlphabets(e, t) {
    try {
        if (window.event) {
            var charCode = window.event.keyCode;
        } else if (e) {
            var charCode = e.which;
        } else {
            return true;
        }
        if ((charCode > 64 && charCode < 91) || (charCode > 96 && charCode < 123) || (charCode === 8)) return true;
        else return false;
    } catch (err) {
        alert(err.Description);
    }
}


var specialKeys = new Array();
specialKeys.push(8); //Backspace
function IsNumeric(e) {
    var keyCode = e.which ? e.which : e.keyCode
    var ret = ((keyCode >= 48 && keyCode <= 57) || specialKeys.indexOf(keyCode) != -1);
    //document.getElementById("phone").style.display = ret ? "none" : "inline";
    return ret;
}

答案 2 :(得分:0)

  <asp:TextBox ID="txtEmail" runat="server" onkeypress="return validateNumbers(event);"></asp:TextBox>
  <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" ControlToValidate="txtEmail" Enabled="false" ForeColor="Red" ClientIDMode="Static" ErrorMessage="Input valid email address!">  

     And in javascript use like below

ValidatorEnable(document.getElementById(&#39; txtEmail&#39;),true);