Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.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/82.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,我在表单上使用了preventDefault,我正试图使用它在语句为true时自动提交 function codeCheck(){ $("#code-form").submit(function(e){ e.preventDefault(); }); var code = $("#code").val(); $.ajax({ url: "index.php",

我在表单上使用了
preventDefault
,我正试图使用它在语句为true时自动提交

function codeCheck(){
        $("#code-form").submit(function(e){
            e.preventDefault();
        });
        var code = $("#code").val();
        $.ajax({
            url: "index.php",
            type: "POST",
            data: { codeCheck: 1, ajaxCode: code }
        }).done(function(check) {
            if(check == 2){
                $("#used").css("display", "block");
            }
            else if(check == 1){
                $("#code").css('background', "url('../img/check.png') no-repeat scroll 170px 2px");
                $("#submit").css('display', 'block');
                $("#submit").on("click", function(){
                    $( "#container" ).fadeOut( "slow", function() {
                        $("#code-form")[0].submit();
                    });
                });

                $("#used").css("display", "none");
            }
            else{
                $("#code").css('background', "none");
                $("#used").css("display", "none");
                //$("#code-form").unbind('submit');
            }
        }); 
}
解除绑定确实有效,我可以在解除绑定时使用“提交”按钮。但是
$(“#表单”).submit()
部分不起作用,淡出后不会自动提交表单

这是一把小提琴:

我想要的是,它在淡出后继续形成


编辑:为了更清楚,我刚刚添加了完整的函数。

您不需要
解除绑定()
,因为页面已刷新,所有事件处理程序都将被销毁

$("#container").fadeOut("slow", function() {
    $("#form").submit();
});
但是,如果您已经附加了事件处理程序,并且您通过ajax进行发布,并且希望解除该事件的绑定,那么您可以使用链接

$('#form').unbind('submit').submit();

您希望使用以下命令,因为您说提交事件已被阻止。这将以默认方式提交表单:

$("#form")[0].submit();
而不是:

$("#form").unbind('submit', function(){
    $("#form").submit();    
});
特别说明:

为此,请确保没有任何带有
name=“submit”
的表单字段

更新

鉴于更新的代码,我的建议如下:

$("#form").submit(function(e){
    e.preventDefault();

    $( "#container" ).fadeOut( "slow", function() {
        $("#form")[0].submit();    
    });
});
淡出
代码应移动到提交处理程序内部


方法
.unbind()
用于删除事件处理程序;它没有调用事件处理程序。哦,你是对的,我误解了这一部分。如果你把
alert('Here')在解除绑定回调中看到了吗?没有,我只是测试了它,解除绑定确实不是这样工作的。但我在stackoverflow上的某个地方看到了它,它似乎起了作用,但我测试错了;因此没有什么可以解除绑定的。我们为什么还要解除绑定呢?在这之前我使用了
preventDefault
,所以
submit()
不起作用。有没有办法重置
preventDefault
以便我可以再次使用submit?(那将是我的实际问题)。我只是尝试了一下,但它不起作用,实际上它甚至给了我一个错误<代码>$(…)[0]。提交不是一个函数
错误是因为您有一个带有
name=“submit”
的表单控件;将其更改为类似于
name=“mysubmit”
的内容,它应该可以工作。实际上,我没有name属性。请在您的问题中提供相关的HTML和JS代码。看看这个:当然我会解释;如果你考虑每个人做的事情,这是非常直接的。code>$('form').submit()
,缩写为
$('form').trigger('submit')
,触发submit事件,触发任何
submit
处理程序;如果没有处理程序阻止它,那么表单也将被提交。另一方面,
$('form')[0]。submit()
不会触发
submit
事件,而是通过默认表单提交来提交表单。如果我需要进一步澄清,请告诉我。