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>
<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.
我想在验证之前我必须将输入(从逗号转换为点小数分隔符),但是如何?
答案 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