2011-01-26 19 views
1

おそらくそこにいる誰かが何が起こっているのかを理解する助けになるかもしれません。私はjQueryのUIダイアログ()を使用して私のプロジェクトでhtmlの部分を表示しています。ユーザーが[新規追加]をクリックすると、クライアントの追加フォームが表示されます。しかし、ユーザーがダイアログの[追加]または[キャンセル]ボタンをクリックすると、エラーが発生します。 "$(this).dialogは関数ではありません"。開いているイベントを削除してダイアログに静的なフォームを表示すると、ボタンが正常に機能します。ASP.Net MVC jQuery Dialog Partial

ClientsController

public ActionResult ajaxCreateClient() 
{ 
    Client c = new Client(); 
    AddToViewData(c); // adds some additional info about client 
    return PartialView("__ClientForm", c); 
} 

ビュー:コンタクト/

.... 
<p> 
@Html.LabelForField(model => model.Client.Name) <!-- custom extension that I wrote --> 
@Html.TextboxFor(model => model.Client.Name) 
<a id="btnAddNew" href="javascript:void()">Add New</a> 
</p> 
.... 
<div id="addNew"></div> 

を作成jQueryの

$(document).ready(function() { 
    $("#btnAddNew").click(function() { 
     $("#addNew").dialog("open"); 
    }); 

    $("#addNew").dialog({ 
     autoOpen: false, 
     title: "Add Client", 
     width: 410, 
     modal: true, 
     resizable: false, 
     open: function(event, ui) { 
      $(this).load("@Url.Action("ajaxCreateClient", "Clients")"); 
     }, 
     buttons: 
     { 
      "Add": function() { 
       // validate() and do something 
       $(this).dialog("close"); 
      }, 
      "Cancel": function() { 
       // do something else 
       $(this).dialog("close"); 
      } 
     } 
    }); 
}); 

ありがとう!

答えて

1

このようにしてみてください。

$('#addNew').dialog('close'); 
+0

はい - 私は、以前は幸運にもしてみてくださいすることを与えました。しかし、ありがとう。 – gnome

+0

うーん、それは変です。 JavaScriptエラーが発生していますか?このメソッドの呼び出しに先行するコードを削除してみてください。 –

+0

はい非常に奇妙です。同じエラーメッセージが表示されます。 – gnome