JavaScript中的学生注册表单验证

JavaScript中的学生注册表单验证,javascript,html,Javascript,Html,我一直在用JavaScript编写一个学生注册表单验证,但它根本不起作用。我甚至尝试过编写各种日志语句进行调试,但似乎根本没有调用函数(?) 如果你们能让我知道我在这件事上出了什么问题,那会很有帮助的。 代码如下: 函数allLetter(){ var name=document.querySelector(“#name”).value; 变量字母=/^[A-Za-z]*$/; if(名称、测试(字母)){ 返回true; }否则{ 警告(“无效名称”); 返回false; } } 函数ro

我一直在用JavaScript编写一个学生注册表单验证,但它根本不起作用。我甚至尝试过编写各种日志语句进行调试,但似乎根本没有调用函数(?)

如果你们能让我知道我在这件事上出了什么问题,那会很有帮助的。 代码如下:


函数allLetter(){
var name=document.querySelector(“#name”).value;
变量字母=/^[A-Za-z]*$/;
if(名称、测试(字母)){
返回true;
}否则{
警告(“无效名称”);
返回false;
}
}
函数rollnumber(){
var roll=document.querySelector(“#roll”).value;
var phoneno=/^\d{7}$/;
if(滚动测试(电话号码)){
返回true;
}否则{
警告(“不是有效的卷号”);
返回false;
}
}
功能日期(){
var date=document.querySelector(“#date”).value;
如果(!日期){
返回true;
}
否则{
警报(“空日期”);
返回false;
}
}
函数检查(){
var t1=allLetter();
var t2=rollnumber();
var t3=日期();
控制台日志(t1);
控制台日志(t2);
控制台日志(t3);
如果(t1&&t2&&t3){
警报(“注册成功”);
返回true;
}否则{
警报(“一个或多个字段设置不正确”);
返回false;
}
}
学生登记表
姓名:

卷号:
出生日期:

您颠倒了.test方法的使用。 您应该在左边使用正则表达式,因为.test是正则表达式的一种方法。 下面是您的代码:

function allLetter() {
            var name = document.querySelector("#name").value;

            var letters = /^[A-Za-z]*$/;
            if (letters.test(name)) {
                return true;
            } else {
                alert("Not a valid Name");
                return false;
            }
        }

        function rollnumber() {
            var roll = document.querySelector("#roll").value;

            var phoneno = /^\d{7}$/;
            if (phoneno.test(roll)) {
                return true;
            } else {
                alert("Not a valid Roll Number");
                return false;
            }
        }

        function date() {
            var date = document.querySelector("#date").value;

            if (!date) {
                return true;
            }
            else {
                alert("Empty Date");
                return false;
            }
        }

        function check() {

            var t1 = allLetter();
            var t2 = rollnumber();
            var t3 = date();

            console.log(t1);
            console.log(t2);
            console.log(t3);

            if (t1 && t2 && t3) {
                alert("Registration Successful");
                return true;
            } else {
                alert("One or More Fields are incorrectly set");
                return false;
            }
        }
然后在onsubmit事件中,您可以删除返回,只需使用该方法,该方法将直接返回true或false

<form name="form1" method="post" onsubmit="check();">

您颠倒了.test方法的使用。 您应该在左边使用正则表达式,因为.test是正则表达式的一种方法。 下面是您的代码:

function allLetter() {
            var name = document.querySelector("#name").value;

            var letters = /^[A-Za-z]*$/;
            if (letters.test(name)) {
                return true;
            } else {
                alert("Not a valid Name");
                return false;
            }
        }

        function rollnumber() {
            var roll = document.querySelector("#roll").value;

            var phoneno = /^\d{7}$/;
            if (phoneno.test(roll)) {
                return true;
            } else {
                alert("Not a valid Roll Number");
                return false;
            }
        }

        function date() {
            var date = document.querySelector("#date").value;

            if (!date) {
                return true;
            }
            else {
                alert("Empty Date");
                return false;
            }
        }

        function check() {

            var t1 = allLetter();
            var t2 = rollnumber();
            var t3 = date();

            console.log(t1);
            console.log(t2);
            console.log(t3);

            if (t1 && t2 && t3) {
                alert("Registration Successful");
                return true;
            } else {
                alert("One or More Fields are incorrectly set");
                return false;
            }
        }
然后在onsubmit事件中,您可以删除返回,只需使用该方法,该方法将直接返回true或false

<form name="form1" method="post" onsubmit="check();">

我认为您应该使用
.test()
方法,如


因此,首先使用regex,而不是
name.test(letters)
你应该使用
letters.test(name)
我认为你应该使用
.test()
方法,比如


因此,首先使用regex,而不是
name.test(letters)
您应该使用
letters.test(name)

这是我的解决方案,不需要javascript,只需要html

学生登记表
姓名:

卷号:
出生日期:

这是我的解决方案,不需要javascript,只需要html

学生登记表
姓名:

卷号:
出生日期:

您是否尝试过onsubmit=“check()”@techLove是的,我尝试过,但没有成功:(尝试通过js实际添加一个事件侦听器,而不是在onsubmit处理程序中添加。我以前见过类似的情况,相信它应该可以修复it@ManavSaxena,您在检查控制台中是否有错误?@doutriforce一点也没有您尝试过onsubmit=“check()”@techLove是的,我做了,但没有成功:(尝试通过js实际添加一个事件侦听器,而不是在onsubmit处理程序中添加。我以前见过类似的情况,相信它应该可以修复it@ManavSaxena,检查控制台中是否有错误?@doutriforce一点也没有