2014-02-19 3 views
0

Я использую запятую в качестве десятичного разделителя в моей форме ввода:Укажите максимальную длину после запятой в формах ввода

HTML:

<form id="myform"> 
    <label for="field">Required, decimal number:</label> 
    <input class="left" id="field" name="field"> 
    <br/> 
    <input type="submit" value="Validate!"> 
</form> 

Я хочу проверить поле ввода, чтобы использовать только запятую десятичный разделитель И позволяет пользователю вводить только 2 десятичных знака после запятой (это валюта).

JS:

$.validator.addMethod("mynumber", function (value, element) { 
    return this.optional(element) || /^(\d+|\d+,\d{1,2})$/.test(value); 
}, "Por favor, introduza um número válido."); 

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

Я уже заменить точку запятой, используя Keypress. Но как я могу помешать пользователю вставить более двух десятичных знаков после запятой? JS:

$("#field").keypress(function (evt) { 
    if (evt.which == 46) { 
     $(this).val($(this).val() + ','); 
     evt.preventDefault(); 
    } 
}); 

Вы можете увидеть JSFiddle here

+0

После каждого нажатия клавиши, я хотел бы найти позицию запятой и вырежьте все 2 символов после него ... –

ответ

2
$("#field").keypress(function (evt) { 
    if (evt.which == 46) { 
     $(this).val($(this).val() + ','); 
     evt.preventDefault(); 
    } 

    //The input of more than 2 numbers after the decimal point is prevented 
    var foo = $(this).val(); 
    if(!foo.match(/^(\d)*,?(\d){0,1}$/)){ 
     evt.preventDefault(); 
    } 
}); 

DEMO

2

Вы можете использовать jQuery Mask.

Это будет так же просто, как это (образец с их сайта):

$('.money2').mask("#.##0,00", {reverse: true, maxlength: false}); 
+0

Это хороший один! Не совсем то, что я искал, но интересный плагин! –

0

Попробуйте это. Это должно решить вашу проблему.

$.validator.addMethod("mynumber", function (value, element) { 
return this.optional(element) || /^\d+(\,\d{1,2})?$/.test(value); 
}, "Por favor, introduza um número válido."); 

Благодаря

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