2014-02-19 1 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 
     } 
    } 
}); 

는 이미 키 누르기를 사용하여 쉼표로 점을 대체하고있다. 하지만 쉼표 뒤에 두 자리 이상을 삽입하지 못하게하려면 어떻게해야합니까? JS : 당신은 jQuery Mask을 사용할 수 있습니다

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

당신은 JSFiddle here

+0

, 나는 쉼표의 위치를 ​​찾아 ... 그 후 모든 것을에게 좋은 하나 –

답변

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

를 볼 수 있습니다.

그것은이 (자신의 웹 사이트에서 샘플)처럼 간단 될 것이다는 :

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

2 개 문자를 잘라 것입니다! 정확하게 내가 뭘 찾고 있었는지는 모르겠지만, 흥미로운 플러그인! –

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."); 

덕분에 키를 누를 때마다 후

관련 문제