1

jquery Form Wizardを使用しており、カスタム検証ルールを作成したいと考えています。

私の現在の問題は、フィールドを URL として検証したいということですが、ユーザーが「http://」プレフィックスを追加するのを忘れた場合、これを拒否せず、代わりにサーバー側でプレフィックスを追加したいと考えています。

url現在、このオプションをサポートしていないこの検証用のクラスを使用しています。解決するには、バリデーターの代わりにカスタム正規表現を使用したいと思いますurl(基本的には、URL フィールドにピリオドがあり、少なくとも 5 文字の長さであることを確認してください)。

jquery-ui-form-wizard で正規表現を使用したり、検証のためにコールバック関数を呼び出したりすることができませんでした。注-送信時だけでなく、各ステップで検証したい。

フォーム ウィザードのオプションに次を追加すると、コールバックが呼び出されますが、false が返されたとしても、[次へ] をクリックすると次のページに進みます。

remoteAjax: {
  "page1" : {
    url: "./validateWizard1",
    dataType: "json",
    beforeSend: function() {
      // This code is called before "page1" is turned.
      return false;
    },
    success: handleValidateSubmit
  }
}

カスタム エラー メッセージを設定する (検証プラグインに標準的な方法で表示される) か、URL メッセージを再利用したいと考えています。

これを達成するための最良の方法は何ですか?

4

1 に答える 1

0

これは、jquery-form-wizard の作成者である Jan Sundman からの回答です (彼は代わりに投稿するように私に依頼しました)。

あなたの質問が正しく理解できれば、remoteAjax を使用してリクエストがサーバーに送信される前に、beforeSend メソッドで検証を行いたいと思いますか?

私が正しく理解している場合、検証プラグインを使用して入力を検証していますが、URL ルールはあなたのニーズをサポートしていませんか? その場合、正規表現などを使用できるhttp://docs.jquery.com/Plugins/Validation/Validator/addMethodを使用して、新しいメソッドを追加でき ます。

そうは言っても、ウィザードの beforeSend メソッドは false を返しても ajax 呼び出しを切り捨てていないようです。これはバグであり、今後のリリースで修正する予定です。

これを回避するには、代わりに beforeSubmit コールバックを使用してみてください (フォーム プラグインによって提供されます)。例:

remoteAjax: {
 "page1" : {
   url: "./validateWizard1",
   dataType: "json",
   beforeSubmit: function() {
     // This code is called before "page1" is turned.
     return false;
   },
   success: handleValidateSubmit
 }
}

これが役立つことを願っています。

于 2012-01-23T15:23:39.570 に答える