Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.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_Validation - Fatal编程技术网

Javascript验证脚本

Javascript验证脚本,javascript,validation,Javascript,Validation,我正在努力理解哪里出了错。 经过多次尝试,我倾向于认为这是关于过度检查()的问题。。。 append、clearelement和writeto是附加的迷你函数,它们完全可以使用。 因此,这个脚本检查表单,如果一切正常,就会打开一个新页面。但是,如果字段为空或类型错误,则会显示相对错误消息(或错误消息列表)。 我做了很多修改,有时打开时没有填写完整的表单(如下面的代码),有时只显示一个字段的错误消息,然后,即使您填写了所有字段,也不会打开新页面。 谢谢你的帮助 <script>

我正在努力理解哪里出了错。 经过多次尝试,我倾向于认为这是关于过度检查()的问题。。。 append、clearelement和writeto是附加的迷你函数,它们完全可以使用。 因此,这个脚本检查表单,如果一切正常,就会打开一个新页面。但是,如果字段为空或类型错误,则会显示相对错误消息(或错误消息列表)。 我做了很多修改,有时打开时没有填写完整的表单(如下面的代码),有时只显示一个字段的错误消息,然后,即使您填写了所有字段,也不会打开新页面。 谢谢你的帮助

 <script>

    function overallcheck ()
    {
        if(!checkname() || !checkemail() || !checkjob())
        {
            writeTo("problemArea","Error messages area");

            if(!checkname())
                writeTo("problemArea","Please insert a valid name");
            if(!checkemail())
                writeTo("problemArea","Please insert a valid email");
            if(!checkjob())
                writeTo("problemArea","Please insert your job");
            return false;                   
        }
        return true;
    }

    function checkname()
    {
        clearElement("problemArea");
        var fullname = document.forms['form'].fullname.value;
        if (fullname.length == 0 || !isNaN(fullname)) 
            return false;
    }

    function checkemail()
    {
        clearElement("problemArea");
        var mail = document.forms['form'].Email.value;
        if (mail == '' || mail.indexOf('@') == -1 || mail.indexOf('.') == -1) 
            return false;
    }

    function checkjob()
    {
        clearElement("problemArea");
        var i;
        for (i=0;i<4;i++)
        {
            if (document.forms['form'].job[i].checked) {return true;}
        }
        return false;
    }

    </script>

    <body>
      <form onsubmit="return overallcheck();" action="res.html" id=form target="_blank" method="GET">
<table>

                <tr>
                    <td><b><p>blabla?</p></b> </td>
                    <td> <input type="text" name="fullname"  size="20" placeholder="Enter a valid name"/> </td>
                </tr>

                <tr>
                    <td><b><p> E-mail: </p></b></td> 
                    <td><input type="email" name="email" maxlength="15" size = "20" placeholder="Enter a valid email address"/> </td>
                </tr>

<tr>
<p><td><b><p>bla?</td></p>
                <td>1<input type="radio" name="job" value="gov" /><br/>
                2<input type="radio" name="job" value="pri" /><br/><div id="problemArea"> </div>
                3<input type="radio" name="job" value="unem" /><br/>
                                4<input type="radio" name="job" value="other" /><br/>

</td></tr>
</table>
            <p>
                <button type="submit" onclick="" >clickme</button>

        </form>
</body>

</html>

函数整体检查()
{
如果(!checkname()| | |!checkemail()| |!checkjob())
{
写入(“问题区”、“错误消息区”);
如果(!checkname())
书面形式(“问题区域”,“请插入有效名称”);
如果(!checkemail())
书面形式(“问题区域”,“请插入有效电子邮件”);
如果(!checkjob())
写到(“问题区域”,“请插入您的工作”);
返回false;
}
返回true;
}
函数checkname()
{
clearElement(“问题区域”);
var fullname=document.forms['form'].fullname.value;
if(fullname.length==0 | |!isNaN(fullname))
返回false;
}
函数checkemail()
{
clearElement(“问题区域”);
var mail=document.forms['form'].Email.value;
如果(mail=''| | mail.indexOf('@')==-1 | | mail.indexOf('.')=-1)
返回false;
}
函数checkjob()
{
clearElement(“问题区域”);
var i;

对于(i=0;i用它自己的div跟踪每种错误类型。将所有错误包装在一个try-catch中检查并警告错误。这有助于找到“Email”错误

函数写入(id,msg){
document.getElementById(id).innerHTML+=“”+msg+”

”; } 函数clearElement(id){ document.getElementById(id).innerHTML=“”; } 函数全局检查(){ 试一试{ 如果(!checkname()| | |!checkemail()| |!checkjob()){ 如果(!checkname()) 书面形式(“问题\全名”,“请插入有效名称”); 如果(!checkemail()) 书面(“问题电子邮件”,“请插入有效电子邮件”); 如果(!checkjob()) 书面形式(“问题”,“请插入您的工作”); 返回false; } 返回true; }捕捉(错误){ 警惕(err); } } 函数checkname(){ clearElement(“问题_全名”); var fullname=document.forms['form'].fullname.value; if(fullname.length==0 | |!isNaN(fullname)){ 返回false; } 返回true; } 函数checkemail(){ clearElement(“问题电子邮件”); var mail=document.forms['form'].email.value;//email.value; 如果(mail=''| | mail.indexOf('@')==-1 | | mail.indexOf('.')=-1){ 返回false; } 返回true; } 函数checkjob(){ clearElement(“问题”); var i; 对于(i=0;i<4;i++){ if(document.forms['form'].job[i].选中){ 返回true; } } 返回false; }
td{
垂直对齐:文本顶部;
}
.问题{
颜色:红色;
}

布拉布拉?

电邮:

布拉

1
2
3
4
点击我
除了checkjob之外的所有函数都返回false或未定义,所以像
!checkname()
这样的表达式可以任意解析为true。哦,还有
!isNaN(全名)
似乎没有多大意义。另外
checkname
!=
checkname
我也会是“那个家伙”并指出您一般不应该依赖客户端表单验证。希望这只是一些预验证,以减少服务器请求,并且您正在服务器上进行真正的验证,对吗?对吗?您应该共享您的表单。