Javascript 对2个十进制输入进行双重jQuery验证,并获取较大的数字
这是我的密码:Javascript 对2个十进制输入进行双重jQuery验证,并获取较大的数字,javascript,jquery,forms,validation,double,Javascript,Jquery,Forms,Validation,Double,这是我的密码: $(document).ready(function(){ jQuery.validator.addMethod("cents", function(value, element) { return this.optional(element) || /^\d{0,12}(\.\d{0,2})?$/i.test(value); }, "You must include two decimal places"); $.validator
$(document).ready(function(){
jQuery.validator.addMethod("cents", function(value, element) {
return this.optional(element) || /^\d{0,12}(\.\d{0,2})?$/i.test(value);
}, "You must include two decimal places");
$.validator.addMethod('lessthan', function(value, element, param) {
return this.optional(element) || value <= $(param).val();
}, 'Invalid value');
$.validator.addMethod('greaterthan', function(value, element, param) {
return this.optional(element) || value >= $(param).val();
}, 'Invalid value');
$("#globalSettingsFormId").validate({
rules: {
// Validation Rules
minBetAmt: {
required: true,
number: true,
cents: true,
lessthan: '#maxBetAmt'
},
maxBetAmt: {
required: true,
number: true,
cents: true,
greaterthan: '#minBetAmt'
}
submitHandler: function(form){
form.submit();
},
messages: {
minBetAmt:{
required: "minimum bet amount required!",
number: "This must be a number!",
cents: "You must include two decimal places",
lessthan: 'Minimum Bet Amount must be less than Max Bet Amount!'
},
maxBetAmt: {
required: "Max bet amount required!!",
number: "This must be a number!",
cents: "You must include two decimal places",
greaterthan: "Max Bet Amount must be greater than Min Bet Amount!"
}
});
$(文档).ready(函数(){
jQuery.validator.addMethod(“美分”),函数(值,元素){
返回此.optional(element)| |/^\d{0,12}(\.\d{0,2})$/i.test(value);
},“必须包含两位小数位”);
$.validator.addMethod('lessthan',函数(值、元素、参数){
返回此.optional(element)| | value=$(param).val();
},“无效值”);
$(“#全局设置表单”)。验证({
规则:{
//验证规则
minBetAmt:{
要求:正确,
数字:对,
仙:是的,
lessthan:“#maxBetAmt”
},
最大值:{
要求:正确,
数字:对,
仙:是的,
大于:“#minBetAmt”
}
submitHandler:函数(表单){
表单提交();
},
信息:{
minBetAmt:{
必需:“必需的最低下注金额!”,
数字:“这一定是一个数字!”,
仙:“必须包含两位小数”,
lessthan:“最小下注金额必须小于最大下注金额!”
},
最大值:{
必填项:“所需最大下注金额!!”,
数字:“这一定是一个数字!”,
仙:“必须包含两位小数”,
大于:“最大下注金额必须大于最小下注金额!”
}
});
当我的输入为minBetAmt=25.55和maxBetAmt=26.5时,我的表单将进行验证并提交。 但当我将maxBetAmt更改为241.55或2400.25时,会出现以下消息:“最大下注金额必须大于最小下注金额!” 我的addMethods似乎有问题。有些人告诉我,我的方法“cents”的返回值有问题
你们能帮我找出错误吗?提前谢谢!你们是在比较字符串的排序顺序,而不是值。例如,“25”大于“24000”,因为第二个字符中的“5”大于“4” 比较前将值转换为浮点数值
$.validator.addMethod('lessthan', function(value, element, param) {
return this.optional(element) || parseFloat(value) <= parseFloat($(param).val());
}, 'Invalid value');
$.validator.addMethod('greaterthan', function(value, element, param) {
return this.optional(element) || parseFloat(value) >= parseFloat($(param).val());
}, 'Invalid value');
(检查控制台输出)
注释暗示需要两位小数,但您的正则表达式显示0到2位小数。您能确认哪一位是正确的吗?谢谢@TrueBlueAussie。它现在工作正常。:)
console.log("25" > "2400");
console.log(25.00 > 2400);
true
false