Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.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/87.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 jQuery验证停止表单提交_Javascript_Jquery_Jquery Validate - Fatal编程技术网

Javascript jQuery验证停止表单提交

Javascript jQuery验证停止表单提交,javascript,jquery,jquery-validate,Javascript,Jquery,Jquery Validate,我正在使用jQuery验证表单,但是当表单被验证时,它会重新加载或提交页面,我想停止该操作。我已经使用了event.preventDefault(),但它不起作用 这是我的密码: $("#step1form").validate(); $("#step1form").on("submit", function(e){ var isValid = $("#step1form").valid(); if(isValid){ e.preventDefault();

我正在使用jQuery验证表单,但是当表单被验证时,它会重新加载或提交页面,我想停止该操作。我已经使用了event.preventDefault(),但它不起作用

这是我的密码:

$("#step1form").validate();
$("#step1form").on("submit", function(e){
    var isValid = $("#step1form").valid();

    if(isValid){
        e.preventDefault();
        // Things i would like to do after validation
        $(".first_step_form").fadeOut();
        if(counter == 3){
            $(".second_step_summary").fadeIn();
            $(".third_step_form").fadeIn();
            $(".third_inactive").fadeOut();
        }else if(counter < 3){
            $(".second_step_form").fadeIn();
            $(".third_inactive").fadeIn();
        }

        $(".first_step_summary").fadeIn();
        $(".second_inactive").fadeOut();
    }

    return false;
});
$(“#step1form”).validate();
$(“#step1form”)。关于(“提交”,函数(e){
var isValid=$(“#step1form”).valid();
如果(有效){
e、 预防默认值();
//验证后我想做的事情
$(“.first\u step\u form”).fadeOut();
如果(计数器==3){
$(“.second_step_summary”).fadeIn();
$(“.third_step_form”).fadeIn();
$(“.third_inactive”).fadeOut();
}否则,如果(计数器<3){
$(“.second_step_form”).fadeIn();
$(“.third_inactive”).fadeIn();
}
$(“.first\u step\u summary”).fadeIn();
$(“.second_inactive”).fadeOut();
}
返回false;
});

我所有的JS验证都使用这个基本结构,这符合您的要求

$('#form').on('submit', function() {
    // check validation
    if (some_value != "valid") {
        return false;
    }
});

您不需要
e.preventDefault()
和a
返回false语句,它们做同样的事情。

插件为有效和无效的表单提交尝试提供回调。如果提供submitHandler回调,则表单不会自动提交到服务器

$("#step1form").validate({
   submitHandler : function()
   {
        // the form is valid 
        $(".first_step_form").fadeOut();
        if(counter == 3){
            $(".second_step_summary").fadeIn();
            // etc
        }
   }
});

submitHandler
是插件内置的回调函数

submitHandler
(默认值:本机表单提交):

用于在表单有效时处理实际提交的回调。得到 形式作为唯一的参数。替换默认提交。右翼 在表单验证后,放置以通过Ajax提交表单

由于
submitHandler
自动捕获提交按钮的点击,并且只在有效表单上激发,因此您不需要另一个提交处理程序,也不需要使用
valid()
来测试表单

您的代码可以替换为:

$("#step1form").validate({
    submitHandler: function(form) {
        // Things I would like to do after validation
        $(".first_step_form").fadeOut();
        if(counter == 3){
            $(".second_step_summary").fadeIn();
            $(".third_step_form").fadeIn();
            $(".third_inactive").fadeOut();
        }else if(counter < 3){
            $(".second_step_form").fadeIn();
            $(".third_inactive").fadeIn();
        }
        $(".first_step_summary").fadeIn();
        $(".second_inactive").fadeOut();
        return false;  // block the default submit action
    }
});
$(“#step1form”)。验证({
submitHandler:函数(表单){
//验证后我想做的事情
$(“.first\u step\u form”).fadeOut();
如果(计数器==3){
$(“.second_step_summary”).fadeIn();
$(“.third_step_form”).fadeIn();
$(“.third_inactive”).fadeOut();
}否则,如果(计数器<3){
$(“.second_step_form”).fadeIn();
$(“.third_inactive”).fadeIn();
}
$(“.first\u step\u summary”).fadeIn();
$(“.second_inactive”).fadeOut();
return false;//阻止默认提交操作
}
});

您将
e.preventDefault()
放在了错误的位置。它位于
if
语句中,该语句仅在表单有效时运行。如果表单有效,它将运行,但不管它是否位于错误的位置。
返回true
if(isValid)
block中不完全正确
return false
在jQuery事件处理程序中=
e.preventDefault()
e.stopPropagation()
在哪里指定要提交的操作url?@coding\u傻瓜,因为他想使用
preventDefault()
假设OP正在
提交程序中进行Ajax提交。如果没有
submitHandler
功能,则
元素上的默认
操作将启动。谢谢,它可以工作。但不幸的是,我的输入字段名称中有
dot
。请看我的问题-@coding\u白痴,你不应该这样高调评论。有人已经发布了你问题的正确答案。当我在这里发表评论时,它不在那里。很抱歉给您带来不便。