簡體   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