0

我正在validate()为某些表单使用 jQuery 插件,效果很好。唯一的问题是我有一个需要特殊验证过程的输入字段。这是怎么回事:

在 domready 中为所有必填字段调用 jQuery 验证插件。

这是输入的示例:

<li>
    <label for="nome">Nome completo*</label>
    <input name="nome" type="text" id="nome" class="required"/>
</li>

这就是我如何称呼我的特殊功能:

<li>
    <span id="sprytextfield1">
        <label for="cpf">CPF* (xxxxxxxxxxx)</label>
        <input name="cpf" type="text"  id="cpf" maxlength="15" class="required" />
        <span class="textfieldInvalidFormatMsg">CPF Inv&aacute;lido.</span>
    </span>
</li>

在文件的底部,我调用了 Spry 函数:

<script type="text/javascript">
    <!--
        var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1","cpf");
    //-->
</script>

当然,我在 head 部分调用 Spry CSS 和 JavaScript 文件以及我的special-validate.js.

当我只使用 jQueryvalidate()插件并单击发送按钮时,页面会自动返回到第一个错误的输入字段并显示错误类型(不是数字,不是有效的电子邮件等)。

但是有了这个新功能,这个“回到第一个错误”的功能当然不起作用,因为该validate()功能认为这一切都很好。

我已经为另一个表单添加了一条规则(关于图片上传),它是这样的:

$("#commentForm").validate({
    rules: {
        foto34: {
            required: true,
            accept: "jpg|png|gif"
        }
    }
});

现在我的问题是,如何将特殊验证功能添加为整个验证过程的规则?

这是更好理解的页面:链接文本和特殊字段是第一个:CPF。

我希望我清楚地解释了我的问题。

4

1 回答 1

0

我将回答我自己的问题,因为我刚刚找到了解决方案。我在 DOM 准备好打开之前添加了 JavaScript 函数来检查我的 cpf 编号(巴西 ID 编号),如下所示:

jQuery.validator.addMethod(
    "cpf",
    function (valor){
        ...
    },
    "CPF inv&aacute;lido"
);

然后我的 DOM 准备好了:

$(document).ready(function(){
    $("#commentForm").validate({
        rules: {
            campocpf: {
                required:true,
                cpf:true
            },
        }
    });
});

如果它确实对一些巴西人感兴趣,我可以展示进行 CPF 验证的整个函数(用我自己的号码检查,有效)。我还有另一个 CNPJ 号码(公司的巴西号码)。

于 2010-04-16T19:42:39.500 回答