jquery - 使用 JQuery Validate Plugin 验证具有相同名称的多个表单字段

标签 jquery validation jquery-validate

我有一个动态生成的表单,其中的输入字段具有相同的名称(例如:“ map ”)。我无法选择更改字段名称或生成唯一的字段名称,因为表单处理程序代码 (Perl/CGI) 旨在处理输入值数组(在本例中为 @map)。

如何使用 JQuery Validate Plugin在这种情况下验证表单?具体来说,我希望提交的数组中只有一个元素具有某个固定值。我当前正在使用一个自定义事件处理程序,它使用 serializeArray() 创建一个 JSON 对象,然后遍历它以确保满足条件。但由于我在应用程序的其余部分中使用了验证插件,我想知道是否也可以在这里使用相同的插件来处理这种情况。

感谢您的关注。

最佳答案

您无需更改源文件 jquery.validation,只需覆盖需要仅在需要它的页面中编辑的函数即可。

一个例子是:

$.validator.prototype.checkForm = function() {
    //overriden in a specific page
    this.prepareForm();
    for (var i = 0, elements = (this.currentElements = this.elements()); elements[i]; i++) {
        if (this.findByName(elements[i].name).length !== undefined && this.findByName(elements[i].name).length > 1) {
            for (var cnt = 0; cnt < this.findByName(elements[i].name).length; cnt++) {
                this.check(this.findByName(elements[i].name)[cnt]);
            }
        } else {
            this.check(elements[i]);
        }
    }
    return this.valid();
};

这可能不是最好的解决方案,但至少它避免了编辑源文件,这些文件可以在新版本发布时替换。您的重写函数可能会或可能不会中断。

关于jquery - 使用 JQuery Validate Plugin 验证具有相同名称的多个表单字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/931687/

相关文章:

php - 如何禁用 symfony 2.3 中特定按钮的 html5 验证

jQuery 验证至少选中一个复选框

javascript - 按键时无法从 iframe 失去焦点

javascript - 电子邮件验证javascript

javascript - 在网页上的文本框中键入内容时删除所有空格第二部分

javascript - 验证文件字段html标签文件名,如果包含特殊字符

jquery - 检查 jquery.validate 中的字符串

javascript - Jquery验证不验证表单中的多选框

javascript - 启用 javascript 的浏览器是否承认 noscript?

javascript - 获取相关元素的CSS样式