2016-11-22 3 views
0

У меня есть 3 дополнительных текстовых полей:Jquery проверки: 3 поля сообщений одна ошибка

<input id="editArea" maxlength="3" onkeyup="tabout(this,'editPrefix')" name="editArea" class="accountEdit" type="text" value="@Model.Pharmacy.Area"/> 
<input id="editPrefix" maxlength="3" onkeyup="tabout(this,'editSuffix')" name="editPrefix" class="accountEdit" type="text" value="@Model.Pharmacy.Prefix"/> 
<input id="editSuffix" maxlength="4" onkeyup="tabout(this,'editPrefix')" name="editSuffix" class="accountEdit" type="text" value="@Model.Pharmacy.Suffix"/> 

, которые я хочу, чтобы подтвердить, что их сумма равна ровно 10 цифр, в случае, если пользователь вводит данные.

проверки правил:

$("#Fields").validate({ 
    errorElement:'div', 
    rules: {          
     editZip:{ 
      required: true, 
      zipregex:/^([^A-Za-z]*)$/, 
     }, 
     editArea: { 
      required:false 
     }, 
     editPrefix: { 
      required:false 
     }, 
     editSuffix: { 
      required:false 
     }, 
     submitHandler: function (form) { 
      return false; 
     } 
    }, 
    messages: {      
     editZip: { 
      required:"Enter the zip code." 
     }     
    } 
}) 

Как я подойти к этому?

ответ

0

Вне Plugin проверки вы просто добавляете длину значения и проверить, если это 10.

С помощью плагина вы можете использовать $ .validator.addMethod(). Это может выглядеть следующим образом:

$.validator.addMethod('sum',function(value,element){ 
    var lengths = 0; 
    var parent = $(element).parent('div'); 
    $(parent).find('input').each(function() { 
     lengths = parseInt($(this).val().length) + lengths; 
    }); 
    if (lengths == params[0]){ 
     return true; 
    } else { 
     return false; 
    } 
}); 

$(".accountEdit").rules('add', {sum: 10}); 

Проверьте документацию здесь: https://jqueryvalidation.org/jQuery.validator.addMethod