繁体   English   中英

表单提交不会停止验证

[英]Form submission will not stop for validation

我想要完成的是使用 jQuery 的(非常简单的)电子邮件验证,但无论我做什么,表单都会继续提交。

<form id="rfq" name="rfq" action="rfq_form" method="post" enctype="multipart/form-data"> ...

<input type="image" id="submit" name="submit" src="submit.png" border="0" />

JS 邮件验证:

//$("#rfq").submit(function() { doesnt seem to work either

$('#submit').click(function() {
    var email = $('#email').val();
    if(email.indexOf("@") == -1){
        $("#email").addClass('invalid');
        return false; // cancel form submission if email invalid
    }
    return false; // return true if no errors once i get it working
});

工作示例

首先,确保在 DOM准备就绪后附加所有事件处理程序

我在实际表单上使用.submit()

$(document).ready(function() {
    // now that document is "ready"
    $('#formId').submit(function() {
        var email = $('#emailInput').val();
        alert(email);
        if(email.indexOf("@") == -1){
            alert("invalid!");
            return false; // cancel form submission if email invalid
        }
        alert("valid!");
        return true; // return true if no errors once i get it working 
    });
});

尝试将您的代码包装在就绪块中。

$(document).ready(function(){
    // your code here
});

我认为您还应该在<form>元素上使用submit事件。

这将起作用。 如果你不明白为什么,请随时问:)

var validated = false;

$(document).ready(function(){
    $("#rfq").submit(function(event) {
        if (validated === true) {
            return true;
        }
        event.preventDefault(); // prevent submission
        var email = $('#email').val();
        if(email.indexOf("@") == -1){
            $("#email").addClass('invalid');
            return;
        }
        validated = true;
        return $(this).trigger('submit');
    });
});

您可以尝试使用此功能来验证您的地址。

function validateEmail(elementValue){
   var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
   return emailPattern.test(elementValue);
 }

然后修改您的代码以提交表单。

$('#submit').click(function() {
    var email = $('#email').val();
    if(!validateEmail(email)){
        $("#email").addClass('invalid');            
    }
    else {
       $("form").submit();
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM