Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查我的用户输入是一个设定长度的数字?_Javascript_Jquery - Fatal编程技术网

Javascript 检查我的用户输入是一个设定长度的数字?

Javascript 检查我的用户输入是一个设定长度的数字?,javascript,jquery,Javascript,Jquery,好的,我有一个有很多不同输入的表单,每个表单上都有相同的类名。我需要做的是通过一个AJAX调用循环所有这些输入(用户可以添加更多),确保所有输入仅为四个数字 现在我可以让它检查它的长度,但当我尝试添加一个检查以确保它是一个数字时,它似乎不起作用,这是我当前的代码: var ValidMyData = function() { $('#FORM-ID-HERE').on('submit',function(e) { e.preventDefault

好的,我有一个有很多不同输入的表单,每个表单上都有相同的类名。我需要做的是通过一个AJAX调用循环所有这些输入(用户可以添加更多),确保所有输入仅为四个数字

现在我可以让它检查它的长度,但当我尝试添加一个检查以确保它是一个数字时,它似乎不起作用,这是我当前的代码:

var ValidMyData = function() {

        $('#FORM-ID-HERE').on('submit',function(e) {
                e.preventDefault();

                Numbers = $('.NumberClass');


                //Check if job number is only 4 in length
                function CheckNumbers()  {

                     $(Numbers).each(function() {
                        var GetCurrentInput = $(this).val();

                        if( GetCurrentInput.length != 4  ) {
                             return $(this).css("background-color","#FF0004");

                        } else {
                            return $(this).css("background-color","transparent");

                        } //End of if

                    }); //End of each

                } //end of inner function

        }); //end of on submit function

} //end of valid check function 

ValidMyData();
这是可行的,如果“我的数字”字段中的输入长度不是四,它会使背景色变为红色,然后如果背景色变为四,则会删除该背景色

我试过一些东西,但没有成功。我主要是通过在if检查中添加IsNumeric()函数来使用它。此外,虽然这是可行的,但我不认为我的回电工作正常,我认为我做错了什么,但我不能对此指手画脚:)-当我在console.log中输入CheckNumbers()内部函数时,返回未定义的值

欢迎大家帮忙


谢谢

此代码将检查它是否为4个字符,是否为数字:

var ValidMyData = function() {

        $('#FORM-ID-HERE').bind('submit',function(e) {

                Numbers = $('.NumberClass');


                //Check if job number is only 4 in length
                function CheckNumbers()  {

                     Numbers.each(function() {
                        var GetCurrentInput = $(this).val();

                        if( GetCurrentInput.length != 4  || !/([0-9])+/.test(String(GetCurrentInput))) {
                             return $(this).css("background-color","#FF0004");
                             e.preventDefault();

                        } else {
                            $(this).css("background-color","transparent");

                        } //End of if

                    }); //End of each

                } //end of inner function

        }); //end of on submit function

} //end of valid check function 

ValidMyData();
编辑


我使用您自己的代码更新了答案,如果所有输入都填写正确,现在将提交表单,否则它会突出显示,并且不会提交表单。

您是否尝试调用一个简单的函数
onclick=
,而不是使用
$('#form-ID-HERE')。on('submit',函数(e){
对不起?你的意思是要将函数调用添加到表单输入本身的onclick中吗?好的,我会尝试一下,这应该会让它更好一些,因为用户在提交表单之前会调用函数。非常感谢。工作正常。我看到你删除了内部函数,但我希望我的调用使用它。有一个很大的问题ger main aim,很抱歉,我刚刚看了这个部分,忘了回答这个问题。我将检查表单中的不同字段,每个字段都必须返回true,然后表单将提交并保存,如果其中任何字段返回false,则内部函数将突出显示无效的部分。再次检查答案,这是您想要的吗?我仍然坚信
ValidMyData()
函数是不必要的!谢谢,我正在考虑用另一种方法来实现这一点。你的代码可以满足我的需要,谢谢