1

我正在尝试验证 Struts 1.3 - 使用jQuery Validator插件制作的表单。即使 Struts 1.x 已经到了生命的尽头,我也不能切换到另一个 MVC 框架。

jQuery 验证器使用<input>标签上的属性来确定要应用哪些验证规则。例如:

<input type="text" minlenght="30" required />

将检查文本框是否已填写并且其内容长度至少为 30。

我正在尝试使用 来实现相同的效果<html:text>,它应该呈现为一个<input type="text">元素。但是minlengthrequired没有在 struts-html.tld 中定义为属性,导致 JSP 编译器抛出以下(翻译自西班牙语)异常:

org.apache.jasper.JasperException: /WEB-INF/path-to-my-jsp Attribute xxx invalid for tag xxx according to TLD

根据这个问题,尽管 Struts 用于生成表单,但这是可能的。但我无法让它工作。

有什么方法可以强制 JSP 编译器忽略那些未定义的属性并让 Struts 将它们呈现为“原样”?

注意:我选择 jQuery Validator 是因为它易于使用,但我愿意接受有关执行相同任务的其他方法的建议。但是,我仍然想知道是否可以让 JSP 编译器忽略无效/未定义的属性。

PS请原谅我的英语。我已经尽力了。

4

1 回答 1

2

引用操作:

“jQuery 验证器使用标签上的属性来确定要应用哪些验证规则。”

<input type="text" minlenght="30" required />

不必使用 HTML5 属性声明规则。

您可以改为在.validate()方法中声明您的规则:

$(document).ready(function() {

    $('#myform').validate({
        rules: {
            fieldname: {  // <- field name attribute
                required: true,
                minlength: 30
            }
        }
    });

});

对应的HTML

<input type="text" name="fieldname" />

注意:jQuery Validate 插件要求input字段包含唯一name属性,无论规则如何应用。该name属性是插件如何跟踪输入。如果您未能分配唯一name属性,则插件的行为将无法预测或根本没有。


我刚刚注意到您将minlength规则拼错为minlenght. 也许这是您编译错误的根本原因?

于 2013-10-26T20:01:33.730 回答