2016-03-15 3 views
0

Кто-нибудь знает, как я могу проверить формат цен, как следующийJQuery Validate только десятичное число

1,00 1200.00, но я также хочу, чтобы в 1 и 1200

$.validator.addMethod('decimal', function(value, element) { 
     return this.optional(element) || /^[0-9]+\.\d{1,3}$/.test(value); 
    }, "Please enter a correct number, format 0.00"); 

jQuery.validator.setDefaults({ 
     debug: true, 
     success: "valid" 
    }); 

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

^Я нашел этот код , но он по-прежнему позволяет запятые. В основном я ищу что-то вроде числового без запятой.

Таким образом, в основном только разрешить номера и дополнительные десятичные знаки.

Любое предложение?

Обновление: Таким образом, вышеизложенное работает, но его принудительное требование десятичного. Как сделать это необязательным, чтобы я мог делать 1200 или 1200.00? Или, может быть, есть способ конвертировать 1200 к 1200.00?

+0

Удалить запятые из этого '[]' части регулярного выражения. – Pointy

+0

Также [см. Этот вопрос] (http://stackoverflow.com/questions/18082/validate-decimal-numbers-in-javascript-isnumeric?rq=1), который для меня, по крайней мере, находится на вершине раздела "Связанные "там ========> – Pointy

+0

Удаление запятой. Да, я видел isNumeric(), но не совсем уверен, как связать $ .validator. Я хочу также удостовериться, что можно ввести только цифры, так что 1200 или 1200.00 – limit

ответ

1

Мое предложение, чтобы решить вашу проблему является:

$.validator.addMethod('decimal', function(value, element) { 
 
    return this.optional(element) || /^((\d+(\\.\d{0,2})?)|((\d*(\.\d{1,2}))))$/.test(value); 
 
}, "Please enter a correct number, format 0.00"); 
 

 

 
$(function() { 
 
    $("#frm").on('submit', function(e) { 
 
    e.preventDefault(); 
 
    $('#log').text('Form is valid? ' + $(this).valid().toString()); 
 
    }); 
 

 
    $("#frm").validate({ 
 
    rules: { 
 
     price: { 
 
     required: true, 
 
     decimal: true 
 
     } 
 
    } 
 
    }); 
 
});
<script src="http://code.jquery.com/jquery-1.11.3.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.15.0/jquery.validate.min.js"></script> 
 

 
<form id="frm"> 
 
    Money: <input name="price" id="price" type="text"><br> 
 
    <input id="submit" type="submit" value="Submit"> 
 
</form> 
 
<p id="log"></p>

+0

Awesome. Спасибо, это сработает. – limit

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