1

我是 jquery 的新手,所以我在这里阅读了一些关于如何通过单击按钮以及按 Enter 并跟随它们来验证表单的 stackoverflow 示例。由于某种原因,我的代码不起作用。可以你解释我有我的错误吗?提前谢谢!

$(document).keyup(function(event) {
    if(event.keyCode == 13){
    $("#clickButton").click(function () {
        var username = document.forms["form1"]["username"];
        var password = document.forms["form1"]["password"];
        var numbers = /^[0-9]+$/;
        if (username.value == "" || password.value == "") {
            alert("Data missing");
        } else if (username.value.match(numbers)) {
            alert('Data not valid');
        } else {
            alert("Your password is " + password.value);
        }
    });
}
});
4

3 回答 3

2

它应该是

演示

$("#clickButton").click(function () {
    var username = document.forms["form1"]["username"];
    var password = document.forms["form1"]["password"];
    var numbers = /^[0-9]+$/;
    if (username.value == "" || password.value == "") {
        alert("Data missing");
    } else if (username.value.match(numbers)) {
        alert('Data not valid');
    } else {
        alert("Your password is " + password.value);
    }
});

$('input').keyup(function(event) {
if(event.keyCode == 13){
    $("#clickButton").click();
}
});
于 2013-06-28T12:11:30.023 回答
1

您在 keyup 中绑定了一次点击,因此每次按下回车键时,都会绑定一个新的点击处理程序,这是一个禁忌。

$('#formId input').on('keyup', function(event) {
    if(event.which === 13) {
        event.preventDefault();
        validate();
    }
});

$("#clickButton").on('click', function(event) {
    event.preventDefault();
    validate();
});

function validate() {
    var username = $("#username"), // give elements ID's
        password = $("#password");

    if (username.val() == "" || password.val() == "") {
        alert("Data missing");
    } else if (username.val().match(/^[0-9]+$/)) {
        alert('Data not valid');
    } else {
        alert("Your password is " + password.val());
        document.getElementById('formId').submit();
    }
}

一个更简单的方法是将验证绑定到表单提交事件,因为在单击提交时以及在输入中按下输入时都会触发该事件:

$('#formId').on('submit', function(e) {
    e.preventDefault();
    var username = $("#username"), // give elements ID's
        password = $("#password");

    if (username.val() == "" || password.val() == "") {
        alert("Data missing");
    } else if (username.val().match(/^[0-9]+$/)) {
        alert('Data not valid');
    } else {
        alert("Your password is " + password.val());
        this.submit();
    }
});
于 2013-06-28T12:14:49.727 回答
0

只需删除点击功能

$(document).keyup(function(event) {
    if(event.keyCode == 13){      
        var username = document.forms["form1"]["username"];
        var password = document.forms["form1"]["password"];
        var numbers = /^[0-9]+$/;
        if (username.value == "" || password.value == "") {
            alert("Data missing");
        } else if (username.value.match(numbers)) {
            alert('Data not valid');
        } else {
            alert("Your password is " + password.value);
        }

}
});
于 2013-06-28T12:11:19.947 回答