2015-11-10 2 views
0

Я использовал плагин JQuery Validation, но, к сожалению, он не работает с другим плагином, который я использую. Поэтому я сейчас пишу собственную собственную проверку. На данный момент у меня есть что-то вроде этогоJQuery Custom Validation по форме

function doValidation(formData, jqForm, options) { 

    var fullName = $.trim($("#fullName").val()); 
    var emailAdd = $.trim($("#emailAdd").val()); 
    var aNum = $.trim($("#aNum").val()); 

    if(fullName.length == 0) { 
     alert("Please enter your full name"); 
     return false; 
    } 

    if(fullName.length > 50) { 
     alert("Name is to long"); 
     return false; 
    } 

    if(!validateEmail(emailAdd)) { 
     alert("Invalid email"); 
     return false; 
    } 
} 

function validateEmail($email) { 
    return /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[0-9{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test($email); 
} 

Теперь очевидно, что я не хочу предупреждать об ошибках, это для тестирования. Я также не хочу возвращать ложную информацию обо всех них.

Что я хочу сделать, это добавить все ошибки в массив или что-то в этом роде, потому что если проверка не выполняется, мне нужно отобразить все ошибки. Мне также нужно вернуть false, если проверка не завершена, поэтому моя форма не отправляется. На каждом входе может быть несколько правил проверки, но только один из них будет запущен в любое время.

Как бы я это сделал? Я хочу добавить все ошибки в div с результатами проверки идентификатора.

Любые советы, оцененные.

Благодаря

ответ

1

Вы можете хранить сообщения в массиве:

function doValidation(formData, jqForm, options) { 
    var errors = [];  

    var fullName = $.trim($("#fullName").val()); 
    var emailAdd = $.trim($("#emailAdd").val()); 
    var aNum = $.trim($("#aNum").val()); 

    if(fullName.length == 0) { 
     errors.push("Please enter your full name") 
    } 

    if(fullName.length > 50) { 
     errors.push("Name is to long") 
    } 

    if(!validateEmail(emailAdd)) { 
     errors.push("Invalid email") 
    } 
    if (errors.length > 0) { 
     $('#validation-results').html(errors.join('<br>')); 
     return false; 
    }  
    return true; 
} 

Теперь, чтобы избежать выполнения формы:

Вы можете получить форму и по результатам o метод проверки, который вы отправляете или нет.

Надеюсь, это поможет!

+0

Спасибо. Должно быть это errors.push? –

+0

Да, это ошибка.push – Ele