0

私は新しいスタックオーバーフローであり、最初にすべての貢献者に感謝したいと思います。これは非常に役立つリソースであり、私はあなたから多くのことを学びました. ありがとうございました。

私はjqueryの検証に取り組んでいますが、実際に私が結び目に縛られている問題に遭遇しました。コードを非常に基本的なものに減らしましたが、まだ問題を解決できません。必要なルールとリモートの mockjax 呼び出しを使用して入力を検証しようとしています。jquery の「Milk」デモをガイドとして使用しています。「Milk」デモは想定どおりに動作しますが、私のコードは動作しません。入力ボックスに任意の文字セットを入力すると、必要なルールまたはリモートの mockjax 呼び出しによって入力が検証されません。既存の入力を変更せずにもう一度入力にカーソルを置き、タブまたはリターン キーを押すと、値が検証されます。

私のコードは次のとおりです。

    $(document).ready(function() 
    {
        $.mockjax(
        {
            url: "test.action",
            response: function(settings) 
            {
                this.responseText = "true";
            },
            responseTime: 500
        });
        var validator = $("#myForm").validate(
        {
            rules: 
            {
                FacilityID: 
                {
                    required: true,
                    remote: "test.action"
                }
            },
            messages: 
            {
                FacilityID: 
                {
                    required: "Enter Facility ID",
                    remote: jQuery.format("{0} Facility ID NOT found")
                }
            },
            // specifying a submitHandler prevents the default submit, good for the demo
            submitHandler: function() 
            {
                alert("submitted!");
            },
            // set this class to error-labels to indicate valid fields
            success: function(label) 
            {
                // set   as text for IE
                label.html(" ").addClass("checked");
            },
            highlight: function(element, errorClass) 
            {
                $(element).parent().next().find("." + errorClass).removeClass("checked");
            }
        });
    });

</script>

<section id="main">
    <div id="myFormWrap">
        <h2>Step 2: Enter Facility Data</h2>
        <form id="myForm" autocomplete="off" action="next.php">
            <label for="FacilityID">Facility ID</label>
            <input id="FacilityID" name="FacilityID" type="text" value="" maxlength="12" />
            <label class="status" for="FacilityID"></label>
            <button class="button18" onClick="javascript:StartOver()">Start Over</button>
        </form>
    </div>
</section>

ここをクリックして JSFiddle に移動し、上記のコードをテストします。

リモート呼び出しのルールを削除すると、必要なルールは正常に機能します。ここで jquery の投稿の多くを調べましたが、まだ答えが見つかりません。もちろん、mockjax は不完全ですが、非常に基本的な要件に到達し、そこから構築したいと考えています。私が欠けているものを学んでいただければ幸いです。

ミズーリ

4

0 に答える 0