0

当我添加嵌套在主表单中的图像上传表单时,我不得不重构网页,因为这是不可能的。外部表单被转换为具有“项目”类和提交按钮的 onClick 的元素,我使用选择器对这些元素进行了序列化

form = $(".item").serialize();

但是,我现在再次重构以使用 jquery validate 插件,我想知道我是否能够以某种方式使用此选择器而不是表单本身(不再存在)。

我在想类似的事情:

$(".item").validate(
{
   rules: {
         summary: {
              validateSummary: true
         }
    ..........etc etc

这似乎不起作用,但理论上我会序列化匹配的“.item”元素,然后对列表中与名称匹配的元素应用自定义验证(就像我假设表单序列化会起作用一样)。

我已经看到了 validate 插件附带的 classRules 选项,但是它看起来像是按类对自定义验证进行分组,实际上我只想为此进行“普通”表单验证,我使用选择器而不是#form。

4

2 回答 2

1

老实说,我无法遵循您所有 DOM 操作背后的推理,但在这种情况下,我不必这样做。

要使用 jQuery Validate 插件,您的输入元素必须在一组 form标签内。没有针对此要求的解决方法。

于 2013-10-21T22:04:02.630 回答
0

验证必须在提交的表单之外的字段的一种方法(无论出于何种原因 - 有时这是一个很好的理由,有时不是),将使用表单内的隐藏字段,即使您的真实字段感兴趣的是形式之外。

在验证之前,将隐藏字段的值设置为表单外元素的值。然后在表单上调用 validate 插件(就像 Sparky 说的,你必须在表单上调用它),如果你有这个忽略设置,它将验证隐藏字段:

$('#myform').validate({
        ignore: [],
        // any other options and/or rules
    });
于 2013-10-21T22:16:11.530 回答