jquery验证内置规则不起作用

时间:2015-03-27 13:01:53

标签: javascript jquery validation

我正在尝试使用jquery验证(http://jqueryvalidation.org/)来验证函数。

调用validate函数并应用以下规则集(缩写)。

$('#sampleParameters2').validate({
        rules: {
            P00003: {
                custom_float: true,
                required: true },
            P00004: {
                min: 0 },
            P00009: {custom_float: true}
        },
        submitHandler: function (form) { ......

如果我违反了我创建的自定义规则custom_float,我会得到我期望的消息。

但是,如果我违反了'required'或'min'规则,提交处理程序仍会被调用,我没有收到任何消息。

输入格式如下:

<input class="number" type="text" name="P00003" id="P00003" placeholder="in feet" onChange="save_data(this.name,this.value)">

我可以使用html5验证解决最小问题(只是在表单中设置min = 0)但不幸的是,这是一个已知的错误。 (Is there a bug with min="0" in jquery validation? Or am I overlooking something?

我认为这只是那个错误...但在上面的链接中,他们实际上建议在规则中设置min:0是解决它的方法。此外,'required'也不起作用。只有自定义规则(所以我知道问题不在验证调用中)。

编辑:由于评论,我包括我的自定义浮动规则。 (编写以查看自定义规则是否有效)

$.validator.addMethod("custom_float", function (value, element) {
        return value.match(/^([+-]?(?=\.\d|\d)(?:\d+)?(?:\.?\d*)|)$/);//Accepts only floats or blank space
    }, "Please enter a valid float number");

另请注意,要解决min:0不工作问题并转向更大的鱼,我只需编写另一个自定义规则并分配它......它的工作原理。也就是说,我想弄清楚真正的问题是什么,并以“正确”的方式做到:

$.validator.addMethod("positive", function (value, element) {
            if(value==null || value.trim()=="") {
                return true;
            } else
                return (value>0);
    }, "Please enter a value greater than or equal to zero");

0 个答案:

没有答案