1

クリックイベントが使用されているとエラーが発生します。サーバー側のコードが完了する前に、Ajax 呼び出しが「キャンセル」されます。次に、$Ajax エラー メソッドでデバッガーを実行します。statusText はちょうど言っていstatusText: "error"ます。を削除することで一時的な解決策を見つけました<form id="formid">.... <form/>。しかし、私はでのみ使用できるjQuery.ValidationEnginenを使用しているので.

jQuery コード:

$("#formid").validationEngine('attach', { scroll: false }).css({ color: "#4a6b0e" });

    $('#submitLogin').click(function () {
          var self = this;
            var UserName = $("#UserName").val();
            var Password = $("#Password").val();
            var RememberMe = $("#RememberMe").val();
            var PropertyId = ol.property.infoId;
            $.ajax({
                type: "POST",
                url: ol.url("~/Authentication/LogIn"),
                data: { "UserName": UserName, "Password": Password, "RememberMe": RememberMe },
                success: function (data) {

                  if (data.Errormes) {
                    $("#Result").html("Error: " + data.Errormes);
                  } else {
                    window.location.reload();
                  }
                },
                error: function (data, arg1, arg2, arg3) {
                  alert("Error: Run for your life!!");
                }
            });
        });

フォーム:

<form id="formid">
            <div class="LeftCol">Brugernavn</div>
            <div class="RightCol">
                <input type="text" style="width: 250px" id="UserName" name="UserName" class="validate[required,custom[email]]">
            </div>
            <div class="LeftCol">Adgangskode</div>
            <div class="RightCol">
                <input type="password" style="width: 250px" id="Password" name="Password" class="validate[required]" />
            </div>
            <div class="LeftCol">Husk mig?</div>
            <div class="RightCol">
                <input data-val="true" data-val-required="The Remember me? field is required." id="RememberMe" name="RememberMe" type="checkbox" value="true">
            </div>
                <br><div class="RightCol" id="Result" style="color:red;"></div><br>
        <input id="submitLogin" type="submit" value="Log in" class="oline-button-green white" />
 </form>
4

1 に答える 1

3

これを追加してみてください:

 $('#submitLogin').click(function (e) {
    e.preventDefault();
   // ...
 });

クリック イベントを送信ボタンにバインドしているため、ajax リクエストが非同期で送信され、フォームも送信されているため、ページがリロードされ、ajax リクエストがキャンセルされます。

送信ボタンをクリックしたときにフォームが送信されないようにするには、次を使用して、送信ボタンのデフォルトの動作を防止する必要があります。e.preventDefault();

于 2013-02-06T10:12:54.457 に答える