0

form是一个视图车。购物者可以更改任何商品的数量。每个qty输入都name="quantity[row_id]"带有row_id= 0, 1, 2... 等。

我希望该值是必需的和数字的(读取:整数)。我试过这个:

$("#my-view-cart").validate({
  rules: {
    quantity: {
      required: true,
      digits: true
    }
  }
});

我已经尝试过规则,quantity[*]但这quantity*是徒劳的。

如果插件的文档中有一个示例,我没有看到它。

或者也许有另一种方法可以用这个插件做到这一点?我在产品添加到购物车页面上使用了上述规则,但这只是一个输入。有多个输入我被卡住了。

4

2 回答 2

1

“或者也许有另一种方法可以用这个插件做到这一点?”

使用内置rules()方法添加规则并通过class. 请参阅文档。

注意:调用必须调用该方法。.validate()

HTML:

<form id="form">
    <input type="text" class="myclass" name="whatever" />
    <input type="text" class="myclass" name="something" />
    <input type="text" class="myclass" name="another" />
</form>

jQuery:

$("#form").validate({
    // my options
});

// the following method must come AFTER .validate()
$('#form').find('.myclass').each(function() {
    $(this).rules('add', {
        required: true,
        digits: true,
        messages: {
            required: "Required input",
            digits: "Please only enter digits"
        }
    });
});

jsFiddle 演示


编辑:

OP的评论:

“如果显示错误,我不想允许点击结帐。有什么想法吗?”

您只需使用.valid()返回一个布尔值来测试表单是否通过验证。就像是...

if ($('#form').valid()) {
    // form passes validation, allow your click
} else {
    // form fails validation, do something else
}

如果这不是您所需要的,则有必要发布有关此无关问题的新问题。

于 2012-12-20T23:33:09.650 回答
1

您需要将name输入的引号括起来:

$("#my-view-cart").validate({
  rules: {
    "quantity[1]": {
      required: true,
      digits: true
    }
  }
});

或者按照 Kevin B 在评论中所说的那样做并添加class="required digits"到输入元素中。

于 2012-12-20T22:52:31.370 回答