1

jQueryベースアシスタンス検証プラグインを機能させるのに少し問題があります。まず、開発中の問題のサイトを紹介します。開発サイト。私は中国のESL教師なので、問題のある分野にたどり着くために、サイトは中国語で書かれています。

  • ページの左上に2つのボタンがあり、最初のボタンをクリックします
  • ajaxリクエストが完了すると、ログインフォームを含むモーダルダイアログがポップアップ表示されます

ここに問題があります。簡単に言えば、検証プラグインを機能させることができません。いくつかの追加の検証メソッドが定義されており、firebugはそれらがオブジェクトに正常にロードされていることを通知します。必要なものを探すようにルールを設定しても、エラーも返されません。コンソールを使用してvalidateを呼び出すことができ、それは機能しますが、オブジェクトを返す以外のフィードバックはありません。この問題は本当に頭を悩ませています

操作の簡略化されたタイムラインは次のように流れます。

  1. ページが呼び出されると、タイプが設定されます。この場合はフォームです。
  2. xmlを返すサーバーにリクエストが送信されます
  3. 追加のスタイルシートとスクリプトファイルがダウンロードされ、ヘッドに挿入されます。#works#
  4. 検証ルールは、私のページコントローラークラスに保存されているjson形式のxmlノードにあります。投稿の最後の例。この応答はブラウザセーフであり、現在オブジェクトに変換されます
  5. ダイアログボックスがポップアップし、フォームが挿入された後、formentities attachと呼ばれる関数が#works#と呼ばれ​​ます。
  6. この関数の最後の部分は、検証関数をフォームに添付することです。これは、サーバーから返送されたルールを使用します。

    /* Attach validation to the button class used for submit*/
    $(".form-submit").live("click", function(event){
       event.preventDefault();
       event.stopImmediatePropagation();
       /* Perform the actual validation */
       $("#"+params.strFormName).validate({
          /* As defined from ajax call */
          rules: params.objValidation,
          /* Custom function to prevent default send */
          submitHandler: function(form) {
             /* Now the form has passed script validation, set it as inactive */
             var strFormName = form.id;
             params.strRequestType = "formresponse";
             params.strRequestMethod = "POST";
             params.strRequestURL = $("#"+strFormName).attr("action") + '&ajax_type=formresponse'; 
             params.strRequestParameters = $("#"+strFormName).serialize();
             methods.requestpage();
          }
       });                  
    });
    

任意のポインタをいただければ幸いです。この質問を読んでいただきありがとうございます

4

1 に答える 1

0

validコードを並べ替えてからメソッドを呼び出すとどうなりますか?

// You need to create the validation object first and initialize it.
$("#"+params.strFormName).validate({ // This method doesn't "validate" it instantiates.
      /* As defined from ajax call */
      rules: params.objValidation,
      /* Custom function to prevent default send */
      submitHandler: function(form) {
         /* Now the form has passed script validation, set it as inactive */
         var strFormName = form.id;
         params.strRequestType = "formresponse";
         params.strRequestMethod = "POST";
         params.strRequestURL = $("#"+strFormName).attr("action") + '&ajax_type=formresponse'; 
         params.strRequestParameters = $("#"+strFormName).serialize();
         methods.requestpage();
      }
   });                  

/* Attach validation to the button class used for submit*/
$(".form-submit").live("click", function(event){
   event.preventDefault();
   event.stopImmediatePropagation();
   /* Perform the actual validation */
   $("#"+params.strFormName).valid(); // Call the valid method here to see check if form is valid
});

少しのドキュメントは決して傷つきません。

于 2012-09-03T04:42:18.393 に答える