0

こんにちは、私はこの投稿から同じ問題を抱えています:

onBeginが失敗したときにロード要素を非表示にしないAjax.BeginFormですが、まだ解決する方法が見つかりません。

基本的に、OnBegin 関数で Ajax.BeginForm を使用し、この関数が false を返した場合、読み込み中の elementID は引き続き表示され、再び非表示になることはありません。

これは私がテストしているコードです:

function isValid() {
    return false
} 


<% using (Ajax.BeginForm("LogIn", "Security", new { ReturnUrl = Request["ReturnUrl"] }
       , new AjaxOptions { UpdateTargetId = "resultErrors", OnBegin = "isValid", LoadingElementId = "updatePanel" }))
{ %>
4

1 に答える 1

1

私は解決策を正確に覚えていません.Ajax呼び出しを処理するには、独自のプレーンなHtmlを作成する方がはるかに良いとずっと前に決めました。

必要に応じて、ここにコードを投稿してください。JQuery でそれを行う方法を紹介できます。

このソリューションに固執したい場合は、次のように JQuery を使用して要素を手動で非表示にすることができます。

<% using (Ajax.BeginForm("LogIn", "Security", new { ReturnUrl = Request["ReturnUrl"] }
   , new AjaxOptions { UpdateTargetId = "resultErrors", OnBegin = "isValid", LoadingElementId = "updatePanel" }))
{ %>

<script type="text/javascript" language="javascript" src="<%=Url.Content("~/Scripts/jquery-1.4.1.js") %>">//Jquery reference
</script>

<script type="text/javascript" language="javascript">
   function isValid() {
       if (true) // In case i whant to return true
       {
           return true;
       }
       else // I whant to return false
       {
           $('#updatePanel').hide(); // Manually hide the LoadingElementId
           return false;
       }
   }    
</script>
于 2010-10-22T12:44:57.107 に答える