JQuery验证:几个数字输入中至少有一个必须高于0

时间:2016-10-08 08:28:54

标签: jquery validation

我有一个包含三个Javascript计算输入的表单,默认为0。

为了验证表单,至少有一个字段必须具有大于0的值。

如何成功完成此操作? 我已经知道了' require_from_group'验证方法,以确保填写几个字段之一,但是有类似的东西检查这些字段的值吗?

JS:

    $('#registerForm').validate({
     rules: {
      gramsTOT: {
       require_from_group: [1, '.notZero']
      },
      unitsTOT: {
       require_from_group: [1, '.notZero']
      },
      eurcalcTOT: {
       require_from_group: [1, '.notZero']
      }
     }, // end rules
    }); // end validate

HTML:

    <input type='number' lang='nb' class='specialInput first notZero' id='gramsTOT' name='gramsTOT' value="0" readonly /><br />
    <input type='number' lang='nb' class='specialInput first notZero' id='unitsTOT' name='unitsTOT' value="0" readonly /><br />
    <input type='number' lang='nb' class='specialInput notZero' id='eurcalcTOT' name='eurcalcTOT' value="0" readonly />

1 个答案:

答案 0 :(得分:0)

您可以使用jQuery.validator.addMethod构建自定义验证规则,在您的情况下,它将是

    jQuery.validator.addMethod("greater_than_number", function(value, element, options) {
  var val = $(options[1], element.form).filter(function() {

    return $(this).val();

  }).val(); 
  console.log(val);
  var valid = parseFloat(val) > parseFloat(options[0]) ;
  console.log(valid);
  return valid;
}, jQuery.validator.format('one of these must bigger than {0}'));



$('#myform').validate({
  rules: {
    gramsTOT: {
      require_from_group: [1, '.notZero'],
      greater_than_number: [0, '.notZero']
    },
    unitsTOT: {
      require_from_group: [1, '.notZero'],
      greater_than_number: [0, '.notZero']
    },
    eurcalcTOT: {
      require_from_group: [1, '.notZero'],
      greater_than_number: [0, '.notZero']
    }
  }, // end rules
}); // end validate

请参阅演示here