需要有关提交活动的帮助

时间:2017-09-21 06:21:33

标签: javascript jquery html forms

我正在尝试开发一个表单。在提交给服务器之前,我使用jquery验证它,一切正常,除了提交事件上的函数,表单被提交有错误,同时在控制台窗口中检查,错误是这样的,"返回语句后的无法访问的代码" ,请提出一些建议 摘录html:

<form name="empform" action="editformProcess.php" method="POST" id="empform1"><a name="profileform1"></a>
    <div class="row">
        <div class="col-md-5 box"><label>First Name </label></div>
        <div class="col-md-7 boxinput"><span class="colenSpan">:&nbsp;</span><input type="text" name="firstName" id="fName" required /></div>   
    </div>

    <div class="row ErrorMessg">
        <div class="col-md-5 "></div>
        <div class="col-md-7 " id="firstNameErrorMsg"> </div>   
    </div>

    <div class="row">
        <div class="col-md-5 box"><label>Last Name </label></div>
        <div class="col-md-7 boxinput"><span class="colenSpan">:&nbsp;</span><input type="text" name="lastName" /></div>
    </div> 
    <div class="row">
        <h3>Contact Details </h3>
        <div class="col-md-5 box"><label>Email Id </label></div>
        <div class="col-md-7 boxinput"><span class="colenSpan">:&nbsp;</span><input type="email" name="emailId" required /></div>
    </div>  

    <div class="row">
        <div class="col-md-5 box"><label>Mobile Number </label></div>
        <div class="col-md-7 boxinput"><span class="colenSpan">:&nbsp;</span><input type="text"  name="mobileNumber"  id= "mobNum" required /></div>
        <div id="mobbox"></div>
    </div>



    <div class="row ErrorMessg">
        <div class="col-md-5"><label></label></div>
        <div class="col-md-7" id="mobileNumMess"> </div>
        <div id="mobbox"></div>
    </div>

     <input type="submit" name="submitDetails" value="Submit Details" id="submit"/>

</form> 

jquery的摘录:

$(function(){
    //firstNameErrorMsg


    $("#firstNameErrorMsg").hide();
    $("#mobileNumMess").hide();

    var errorFirstName= false;
    var mobileNum= false;


    $("#fName").focusout(function(){
        checkFirstName();

    });

    $("#mobNum").focusout(function(){

        checkMobNum();

    });

    function checkFirstName(){
         var fNameLength = $("#fName").val().length;
         if(fNameLength < 5 || fNameLength > 20){
            $("#firstNameErrorMsg").html("sholud be between 5-20 charecters "); 
            $("#firstNameErrorMsg").show();
            errorFirstName= true;

         }else
         {
             $("#firstNameErrorMsg").hide();


         }


    }

    function checkMobNum(){
        var pattern = new RegExp(/^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/); 
        if(pattern.test($("#mobNum").val())){
            $("#mobileNumMess").hide();
        }else{
                $("#mobileNumMess").html("Invalid Mobile Number");
                $("#mobileNumMess").show();
                mobileNum = true;
                console.log("h from begin sub");

        }
    }

    $("#empform1").on('submit',function(){

        //return true;
        //console.log("h from begin2 sub1");
        var errorFirstName= false;
        var mobileNum= false;

        checkFirstName();
        checkMobNum();
        //console.log("under var");

        if(errorFirstName == false){
            return true;
            console.log("under if");
        }else{
            return false;
        }



    })
});

2 个答案:

答案 0 :(得分:0)

当表达式存在于有效的return语句之后时,会发出警告以指示return语句之后的代码无法访问,这意味着它永远不能运行。在这里,

SLC:SLC02:02-314:06:04.csv, ### file ID on Google Drive ###, application/vnd.google-apps.spreadsheet
domain, writer

是错误。返回语句后记录字符串。将其更改为:

google-api-go-client/drive/v3/

我希望这应该解决它,但我无法重现错误。

参考提交的任何问题,以下是我建议您编辑代码的方法:

if(errorFirstName == false){
    return true;
    console.log("under if");
}

您显然要对代码执行的操作是根据检查函数修改函数范围内的errorFirstName和mobileNum(事件处理程序)。但它不会那样工作。

当您更改检查函数中的变量时,首先引用全局变量。那不是我猜你想要的。

作为一个好习惯,我建议您返回测试结果,就像我在编辑过的代码中一样。

这个问题也可以通过删除在处理函数中声明具有相同名称的局部变量的代码行来解决。

答案 1 :(得分:0)

您需要在2个地方更正您的代码。

  1. 要解决表单提交问题,您需要删除提交方法

    中的变量声明

    $("#empform1").on('submit',function(){ //return true; //console.log("h from begin2 sub1"); //var errorFirstName= false; //var mobileNum= false;

  2. 不要忘记在checkFirstName方法

    中重置var errorFirstName
    } else {
    $("#firstNameErrorMsg").hide();
    errorFirstName = false;
    }]