1

jQuery Validatorプラグインで作成された Struts 1.3 のフォームを検証しようとしています。Struts 1.x はサポート終了になっていますが、別の MVC フレームワークに切り替えることはできません。

jQuery バリデーターは、<input>タグの属性を使用して、適用する検証ルールを決定します。例えば:

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

テキストボックスが入力されているかどうか、およびその内容の長さが少なくとも 30 であるかどうかを確認します。

<html:text>要素としてレンダリングすることになっている で同じことを達成しようとしています<input type="text">。しかしminlength、andrequiredは 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

引用OP:

「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属性が含まれている必要があります。属性は、プラグインが入力を追跡する方法です。一意の属性を割り当てないと、プラグインは予期しない動作をするか、まったく動作しなくなります。namename


minlengthルールのつづりを と間違えていることに気付きましたminlenght。おそらく、これがコンパイル エラーの根本的な原因でしょうか?

于 2013-10-26T20:01:33.730 に答える