Отправка формы не остановится для проверки - PullRequest
3 голосов
/ 03 октября 2011

Я пытаюсь выполнить (очень простую) проверку электронной почты с использованием jquery, но независимо от того, что я делаю, форма будет просто отправлять.1005 *<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
});

Ответы [ 4 ]

4 голосов
/ 03 октября 2011

Рабочий пример

Сначала убедитесь, что все обработчики событий подключены, когда 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 
    });
});
3 голосов
/ 03 октября 2011

Попробуйте обернуть ваш код в готовый блок.

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

Вы также должны использовать событие submit для элемента <form>, я думаю.

2 голосов
/ 03 октября 2011

Это будет работать.Если вы не понимаете почему, не стесняйтесь спрашивать:)

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');
    });
});
1 голос
/ 03 октября 2011

Вы можете попробовать использовать эту функцию для проверки вашего адреса.

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();
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...