jquery表单提交防止默认

标签 jquery forms

我正在尝试在登陆页面上制作一个简单的电子邮件表单。出于测试目的,我不想实际提交表单。但每次我单击它时,它都会阻止我尝试阻止默认设置。无论我如何退出submit()函数,它都坚持提交这个表单!

$(document).ready( function () {
function validateEmail($email) {
    var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
    if( !emailReg.test( $email ) ) {
        return false;
    } else {
        return true;
    }
}

$("#email_box").click( function () { $(this).val(''); } );

$("#email_form").click(

function(e) {
    var valid = validateEmail($("#email_box").val());


    if (!valid)
    {
        $("#error_msg").fadeIn("slow");
    } else {
        $("#error_msg").style("display", "none");
        $("#email_box").val("Thanks, you'll hear from us soon!").fadeIn("slow");
        //$("#thank_you_msg").fadeIn("slow");
    }

    e.preventDefault();
    return false;   
}

);

});

为什么请求仍在发送?

确实,对我来说最奇怪的事情是,如果表单无效,它就不会提交。但如果表单实际上有效,它就会提交!!

最佳答案

唯一可能的选择(如果这确实是表单名称...)是在 DOM 准备好之前执行您的代码。

将其放入 DOM 就绪回调中:

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

检查你的处理程序是否被解雇是一件明智的事情!

$(function(){
    $("#email_form").submit(function(e) {       
      alert('Fired!'); // <<<<<=====
      e.preventDefault();
    });
});

关于jquery表单提交防止默认,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9793979/

相关文章:

jquery - 如何减去xslt中的值?

jquery - 循环具有数据属性的表行

javascript - 在多个固定高度的表格中自动滚动

javascript - 没有JS的内联和固定之间的自动转移?

forms - 如何增加子网格中的行高

c# - 在 WPF 中实现 System.Window.Forms

javascript - 在javascript中获取两个值输入

javascript - 如何制作选项选择更改按钮链接?

html - 更改单选文本,同时将输入和跨度保留在标签标记中

css - rails : Embed child in submit_tag