0

当我单击表单中的 New Trade 按钮时,它会打开 jquery ui 对话框。但是,当我单击链接按钮时,我在 gridview 中有链接按钮,它应该打开 jquery ui 对话框,它会在单击新交易按钮之前打开 jquery ui 对话框。但是,单击新交易按钮后,如果我单击网格视图中的链接按钮,它会调用“ViewTradeDialog(id)”函数,对话框不会打开,它会显示错误消息“$vwdia.html(data).dialog is not一个函数”。我的代码如下:

    @using (Html.BeginForm("NewTrade", "Trade", FormMethod.Post, new { id = "searchForm" }))
{

    <div id="searchbtn">
        <input id="btn_newtrade" type="submit" value="New Trade" />
    </div>


}


jquery code

  <script type="text/javascript">
 $(function () {






     var $loading = $('<img src="../../loading.gif" alt="loading">');



     var $dialog = $('<div></div>').append($loading);


     $('#searchForm').submit(function (e) {

         var url = this.action;

         $.ajax({
            autoOpen: false,
             url: url,
             success: function (data) {
                 $dialog.html(data).dialog({
                     zIndex:1,
                     width: 1400,
                     height: 600,
                     resizable: false,
                     title: 'New Trade Details',
                     modal: true,
                     buttons: {
                         "close": function () {
                             $dialog.dialog('close');
                         },

                         "Add Trade": function () {
                             $dialog.dialog('close');
                             $.ajax({
                                 type: 'POST',
                                 url: url

                             });
                         }
                     }
                 });
             }
         });
         return false;

     });



 });



 function ViewTradeDialog(id) {



     alert(id);

     var $vwdia = $('<div></div>');

     var url = '/Trade/ViewTrades?tradeid=' + id;


     $.ajax({
         url: url,
         success: function (data) {
             $vwdia.html(data).dialog({

                 width: 600,
                 height: 600,
                 resizable: false,
                 title: 'View Trade Details',
                 modal: false,
                 buttons: {
                     "close": function () {
                         $vwdia.dialog('close');
                     }
                 }
             });
         }
     });



     return false;


 }

4

1 回答 1

0

每次单击新交易时,您可能都会覆盖对话框插件,因为它应用于相同的元素:

$dialog.html(data).dialog(...

有可能通过替换对话框的 html 并重新应用它正在破坏的插件。您是否在 JS 控制台中看到任何其他错误?

于 2012-06-25T15:44:09.237 回答