0

私の使命は、フィールドを必須フィールドにすることですが、ajax/リモート呼び出しが false を返した場合、その必須フィールドの順序をキャンセルします。私はこれを解決しようと何日も遊んでいます。

私はさまざまな方法で依存を使用しようとしましたが、最初はこの例を使用しましたが、機能させることができませんでした - https://github.com/jzaefferer/jquery-validation/issues/431

(その例は、何らかの理由でリモートコードを調べようとさえしません)

依存関係がどのように機能するかを理解するためだけに、コードを取り除こうとしています。

HTML:

    <form method="post" action="" id="register_employee_form" >
        <table>
            <tr>
            <tr>
                <td class="column_1"><label>FORENAME</label></td>                    
                <td><input name="forename" id="forename" value=""  /></td>                    
            </tr>

        </table>
        <input type="submit" value="Register" onclick="register(); return false;" />
   </form>  

Jクエリ:

function register() 
{
    var cancel_validation = 0; // Dont cancel validation

    var form = $("#register_employee_form");

    var validator = form.validate({
    errorElement: "p",      
    rules: 
    {
        forename: 
        {           
            required: true,
            remote: {
                url: "ajax_code.php",
                complete: function(response) {
                    if (response.responseText == "false")
                    {
                        cancel_validation = 1;
                    }
                } // complete                                                   
            }, // remote
            depends: function() {
                 if(cancel_validation == 1)
                 {
                     return false;
                 }                              
            }
        } // forename           
    },
    messages: {
        forename: {
            required : "forename required",
            remote : "REMOTE"
        }           

    },
    submitHandler: function(form) {
        form.submit();
    }
    }); 
    validator.form();
}

ajax_code.php: 今のところ、テスト用の false または true の単純なエコー

 <?php
  echo "true";  // return false if OK
  ?>

したがって、リモート応答が false を返す場合、検証は行われませんが、true を返す場合は検証が行われます。

これが意味をなすことを願っています。私が達成しようとしていることと、これまでに試したことを理解するのは非常に困難です。

どんなアイデアや助けもありがたく受け取った。

4

0 に答える 0