2014-02-19 3 views
14

HTML:JQuery Validation Plugin: проверить десятичное число с запятой в качестве десятичного разделителя

<form id="myform"> 
    <label for="field">Required, decimal number:</label> 
    <input class="left" id="field" name="field"> 
    <br/> 
    <input type="submit" value="Validate!"> 
</form> 
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> 
<script src="http://jquery.bassistance.de/validate/jquery.validate.js"></script> 
<script src="http://jquery.bassistance.de/validate/additional-methods.js"></script> 
<script> 

JS:

$("#myform").validate({ 
    rules: { 
    field: { 
     required: true, 
     number: true 
    } 
    } 
}); 

Это требует, действительное число в "поле" поле. Однако при использовании запятой в качестве десятичного разделителя она не работает. Например: 10,25 не считается действительным числом.

Я взял этот пример из the validation plugin Вы также можете увидеть живую JSFiddle here.

Я думаю, мне придется конвертировать вход (от запятой до точки, десятичного разделителя) до того, как подтверждается, но как?

+2

см. Http://jsfiddle.net/arunpjohny/C3Ncf/1/ –

+0

Спасибо, кажется, работает, я проверю правильность ввода чисел. –

ответ

19

Вы можете использовать шаблонное правило передать пользовательский шаблон регулярного выражения, как

$("#myform").validate({ 
    //for debug only 
    debug: true, 
    rules: { 
     field: { 
      required: true, 
      pattern: /^(\d+|\d+,\d{1,2})$/ 
     } 
    }, 
    messages: { 
     field: { 
      pattern: 'Please use the proper pattern' 
     } 
    } 
}); 

Демо: Fiddle


Если это повторяющаяся схема создать пользовательские правила проверки

jQuery.validator.addMethod("mynumber", function (value, element) { 
    return this.optional(element) || /^(\d+|\d+,\d{1,2})$/.test(value); 
}, "Please specify the correct number format"); 

$("#myform").validate({ 
    //for debug only 
    debug: true, 
    rules: { 
     field: { 
      required: true, 
      mynumber: true 
     } 
    } 
}); 

Демонстрация: Fiddle

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