2014-02-19 70 views
14

HTML:jQuery验证插件:验证具有逗号十进制数为小数分隔

<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