2014-01-06 4 views
4

Я использую ниже кодRegex не работает в JQuery плагин проверки

$(function() { 
    $("#myForm").validate({ 
     rules: { 
      experience: { 
       required: true, 
       regex: '^[0-9]$' 
      } 
     }, 
     messages: { 
      experience: { 
       required: "Please provide experience", 
       regex: "Provide a valid input for experience" 
      } 
     } 
    }); 
}); 

Но приведенный выше код не принимает 2 или 22, как действительный вход? Что я делаю неправильно? Помощь требуется ...

+0

попробовать 'регулярное выражение:«^ [0-9] + $»' – Sergio

+0

Док-сайт плагин кажется вниз, но я подозреваю, что плагин должен регулярное выражение, а не строка. Вы можете попробовать с регулярным выражением: 'regex:/^ [0-9] $ /'? EDIT: найти исходный код, не имеет значения. –

+0

Можете ли вы построить [скрипку] (http://jsfiddle.net), чтобы мы могли воспроизвести вашу проблему? –

ответ

10

Попробуйте это регулярное выражение вместо:

^[0-9]+$ 

Затем поместите его в код:

$(function() { 
    $.validator.addMethod("regex", function(value, element, regexpr) {   
    return regexpr.test(value); 
    }, "Please enter a valid pasword.");  

    $("#myForm").validate({ 
     rules: { 
      experience: { 
       required: true, 
       regex: /^[0-9]+$/ 
      } 
     } 
    }); 
}); 

Вот рабочий пример:

http://jsfiddle.net/4PuJL/1/

+0

Как бы вы объяснили, что 2 не были признаны действительными? –

+0

@dystroy Как вы подозревали в своем комментарии, плагин ожидает регулярное выражение, а не строку. – Stephan

+0

@ dystroy проверить демо в моем ответе. – Stephan

2

В validate jquery нет метода regex: Вы должны c reate вашего метода регулярного выражения вашего собственного

Вы должны использовать addmethod

$.validator.addMethod("regx", function(value, element, regexpr) {   
    return regexpr.test(value); 
}, "Provide a valid input for experience."); 

Ваша функция здесь:

$(function() { 
    $("#myForm").validate({ 
     rules: { 
      experience: { 
       required: true, 
       regex: /^[0-9]$/ 
      } 
     }, 
     messages: { 
      experience: { 
       required: "Please provide experience", 

      } 
     } 
    }); 
}); 

add regex in Jquery.validate

-1

Вы можете использовать 'шаблон' ключевое слово вместо 'regex' в .validate() форме jQuery. Ниже приведен пример кода:

$('#registerForm').validate({ 
    rules: { 
     "customer[is_seller]": { 
      required:true 
     }, 
     "customer[fname]": { 
      required:true, 
      pattern:/^[A-Za-z]+$/ 
     }, 
     "customer[lname]": { 
      required:true, 
      pattern:/^[A-Za-z\s]+$/ 
     }, 
     "customer[email]": { 
      required:true, 
      email:true 
     }, 
     "customer[password]": { 
      required:true 
     } 
    }, 
    messages:{ 
     "customer[is_seller]": { 
      required:"Please select Your category" 
     }, 
     "customer[fname]": { 
      required:"Please enter first name.", 
      pattern:"Special characters not allowed" 
     }, 
     "customer[lname]": { 
      required:"Please enter last name." 
      pattern:"Special characters not allowed" 
     }, 
     "customer[email]":{ 
      required:"Email Id is required", 
      email:"Please enter a valid email." 
     }, 
     "customer[password]":{ 
      required:"Password is required" 
     } 
    } 
}); 
+1

Uncaught TypeError: Невозможно прочитать свойство 'call' of undefined. Исключение произошло при проверке zipcode элемента, проверьте метод 'pattern'. –

Смежные вопросы