0

grails2.1.0用のgrailsJQuery検証UIプラグインを使用しています。

コマンドオブジェクトの制約に基づいて、クライアント側でフォームを評価することがほぼ可能です。1つの問題があります。コマンドオブジェクトにカスタム制約があります。

startTime(nullable: false, validator: {startTime, deal ->
    if ((!DateUtils.isSameDay(startTime, new Date()) && startTime.before(new Date()))) //Start date is today or future but not before end date
    {
        return "pastDate"
    }
    if (deal.endTime && startTime.after(deal.endTime)) {
        return "before.endTime"
    }
})


これにより、ページマークアップで生成された次のレンダリングされたjQuery検証コードが生成されます。

startTime: {
    date: true,
    required: true,
    validator: {
    url: '/appContextRoot/JQueryRemoteValidator/validate',
    type: 'post',
    data: {
        validatableClass: 'myapp.command.tester.testerDealCommand',
        property: 'startTime'
    }
    }
}

custumは、「validator:」を使用してロジックを制約します。現在、何も実行していません。

このカスタムバリデーターを機能させるための最良のアプローチは何ですか?
1:何らかの形のAjax呼び出し?
2:カスタム制約プラグインを使用してjsコードをgrails-validation-methods.jsに追加しますか?
3:他の方法?

オプション2を使用するかどうかわかりません...プラグインを拡張する方法はありますか?

ソースコードリポジトリでプラグインの個別のバージョンをコミットして維持する必要はありません。

4

1 に答える 1

1

プラグインを正しく理解していれば、カスタム検証を直接追加する必要はありませんgrails-validation-methods.js

後でスクリプトをロードする場合は、彼の規則に従うことができます。

jQuery.validator.addMethod("myCustomValidation", function(value, element, params) {
    //perform your validation here
}, "Custom validation fail.");
于 2013-02-19T20:48:23.223 に答える