Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对2个十进制输入进行双重jQuery验证,并获取较大的数字_Javascript_Jquery_Forms_Validation_Double - Fatal编程技术网

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