unbind不是函数 - jQuery验证错误

时间:2017-03-14 15:50:37

标签: jquery

我正在尝试创建一个不提交的jQuery表单,直到通过验证(我是新学员)但是我从控制台收到此错误:未捕获TypeError:$(...)。unbind is不是一个功能

    $("form").submit(function(e){

        e.preventDefault();

        var error = "";

        //MY VALIDATION CODE HERE

        if(error != "") {

            $("#error").html('Please check the following error(s)' + error);

        } else {

            $("form").unbind("submit").submit(); <<< CONSOLE ERROR HERE

        } 
    });

3 个答案:

答案 0 :(得分:4)

我相信这将是jQuery版本的问题。如果您正在使用Rob Percival的CompleteWebDev课程,那么该视频尚未更新(在撰写本文时)以解决此问题。

.bind / .unbind现在已经过时了,在我写作时你应该使用.on / .off。

使用下面的代码,现在应该可以使用:

$( “表”)关闭( “提交”)提交();

答案 1 :(得分:0)

我的代码无法运行,后来我了解到jQuery .bind / .unbind方法已被弃用,为了解决这个问题,我在IF中移动了e.preventDefault();所以我不会调用它,除非验证失败然后我删除了整个解体部分。

答案 2 :(得分:0)

我们也可以避免使用e.preventDefault();或$(&#34;表格&#34;)。off(&#34;提交&#34;)。submit();通过返回true和false;

<script type="text/javascript">


$("form").submit(function (e){

    // e.preventDefault();//jQuery, it prevent the default action of the event

    var error = "";

    if($("#email").val() == ""){
        error += "The email field is required.<br>";
    }

    if($("#subject").val() == ""){
        error += "The subject field is required.<br>";
    }

    if($("#content").val() == ""){
        error += "The content field is required.";
    }

    if(error != ""){

        $("#error").html('<div class="alert alert-danger" role="alert">' +
                    '<p><strong>There were error(s) in your form:</strong></p>'+ error +
        '</div>');

        return false;

    }else{
        return true;
    }



});