2013-09-30 5 views
0

У меня есть веб-сайт ASP.NET MVC 3, который открывает диалог jquery с содержимым частичного представления.Закрытие динамически загруженного диалогового окна jQuery

div.load(baseUrl + 'Home/AssignWarehouse?warehouseId=' + warehouseId + '&countryId=' + countryId).dialog(
     { 
      width: 400, 
      height: 250, 
      modal: true, 
      close: function (even, ui) { 
       refreshMatrix(warehouseId, countryId); 
      } 
     } 
    ); 

Вид, который загружает, представляет собой простой список флажков и кнопку «Сохранить», только что добавленную в форму.

Частичный вид. Я еще не добавил никаких скриптов.

@model AjaxConcept2.Controllers.AssignWarehouseModel 

<div style="width:49%; display: inline-block"> 

    <h3>Country</h3> 
    @Html.DisplayFor(model => model.CountryText) 

</div> 

<div style="width:49%; display: inline-block;"> 


    <h3>Warehouse</h3> 
    @Html.DisplayFor(model => model.WarehouseText) 

</div> 

<div style="margin-top: 20px;"> 

    <input type="checkbox"/> Option A<br/> 
    <input type="checkbox"/> Option B<br/> 
    <input type="checkbox"/> Option C 

</div> 

<input type="button" value="Save"> 

Мой вопрос: могу ли я закрыть диалог с этой кнопки «Сохранить» простым способом? Я хочу запустить скрипт, который определен в частичном представлении, а затем закрыть диалоговое окно. Я не очень разбираюсь в jquery и jquery.ui. :)

Кнопка «Сохранить» находится в частичном представлении, загружается динамически, и щелчок по ней является триггером.

Edit:

мне нужно держать все JavaScripts глобальным и отслеживать входные-поля с уникальными идентификаторами или классами делать? На что я надеялся запустить скрипты с частичного просмотра.

// Йохан

+0

, где находится обработчик кнопки сохранения –

+0

Можно ли использовать атрибут '' buttons'' для ваших параметров диалога? Вы должны изучить его, если они не обязательно должны находиться внутри загруженного содержимого. http://api.jqueryui.com/dialog/#option-buttons – Kippie

+0

Я до сих пор не вижу кнопку сохранения. – Knelis

ответ

0

Вызовите close метод, чтобы закрыть любой диалог.

// If your div is still known or available 
div.dialog('close'); 

// Any element which is a dialog 
$('.element').dialog('close'); 

Также см. jQuery UI API documentation.

Вы можете делегировать событие кнопки сохранения на document. Предположим, что ваша кнопка сохранения имеет класс btn-save. Вы можете сделать следующее:

$(document).on('click', '.btn-save', function() { 
    $('.my-dialog').dialog('close'); 
}); 

Более подробную информацию о делегации событий, check this page in the jQuery documentation.

+0

Не отвечает на вопрос. Пользователь попросил уточнить, как это сделать с помощью кнопки сохранения, указанной внутри его динамически загруженного частичного представления. – Kippie

+0

Он делает сейчас :-) – Knelis

+0

Убрал нижний план, хотя я не уверен, что это будет работать с динамически загруженным контентом. – Kippie

Смежные вопросы