0

私はjQueryの検証がその単純さと拡張性のために好きです。しかし、私の最後のユースケースのいくつかでは、限界に達しているように見えました。私が欠けているいくつかの機能があります。私の質問:これらの機能をサポートするオープンソースライブラリはありますか、それとも開発中に注目すべきものはありますか?または、これらの機能をカバーするために検証フレームワークを拡張/使用する方法についての賢いヒントはありますか?

見逃した機能:

  • 一部のフィールドでは、エラーではなく「警告」ルールを定義する必要があります。falseと評価された場合、メッセージが表示されますが、ユーザーがルールをオフにできる「無視」リンクが含まれている必要があります(ユーザーがスペルエラーを無視することを選択できるMS Wordのスペルチェッカーと同様)。検証によってフォームの送信が妨げられた場合、理想的には、ユーザーが[無視]をクリックするとすぐにフォームが送信されます。

  • ルールは、フォームで実行するアクションによって異なります。1つのアクションではフィールドは必須ではありませんが、別のアクションを実行するためにフィールドが必要になる場合があります。

両方の場合の例として、「電子メールの送信」フォームを使用します。

  • 「subject」フィールドは必ずしも必須ではありませんが、空の場合、ユーザーはそれを見逃している可能性があります。理想的には、検証フレームワークはフォームの送信をブロックし、「件名を見逃しました。無視してください」などのメッセージを表示します。[無視]をクリックすると、メッセージが無効になり、フォームが送信されます。
  • 電子メールを送信するには、「宛先」フィールドが必ず必要です。ただし、フォームに「下書きの保存」ボタンが表示されている場合、下書きを保存するためにユーザーがこのフィールドに入力する必要はありません。
4

1 に答える 1

1

2つ目は、驚くほど簡単です。送信するだけでなく、各ボタンで完了時に送信する関数を呼び出すことができます。その関数では、jquery変数を設定して、ボタンがどのボタンから来たjQuery.validator.addClassRules()かを通知し、検証要件を適用するかどうかを決定する呼び出しの部分でその変数の内容を使用します。1つ目は注意が必要ですが、検証テキストを設定できます。つまり、リンクを含めることができるはずです。リンクに、適用/非適用ロジックが使用する変数を変更する関数をトリガーさせます(場合によっては再送信します-または、これらが複数あるページがある場合は、再検証します(したがって、エラーメッセージを削除します)。 )そして、後で別のボタンを使用して送信できるようにします)。

addClassRulesがどのように見えるかについての簡単な例。

jQuery.validator.addClassRules("toField",
{
    required: {
        depends: function(element)
        {
            return $submitNotSave;
        }
    }
});
于 2012-04-06T13:26:00.113 に答える