Почему не открывается диалоговое окно «далить-Dialog2» при запуске линии выделены жирным шрифтом (между **)Почему бы не открыть диалоговое окно
<script type="text/javascript">
$(function() {
var deleteLinkObj;
// delete Link
$('.delete-link').click(function() {
deleteLinkObj = $(this); //for future use
$('#delete-dialog').dialog('open');
return false; // prevents the default behaviour
});
//definition of the delete dialog.
$('#delete-dialog').dialog({
autoOpen: false, width: 350, resizable: false, modal: true, //Dialog options
buttons: {
"Confirm": function() {
$.post(deleteLinkObj[0].href, function (data) { //Post to action
if (data == '@Boolean.TrueString') {
deleteLinkObj.closest("tr").hide('slow'); //Hide Row
//(optional) Display Confirmation
}
else {
//this is the line
**$('#delete-dialog2').dialog('open');**
}
});
$(this).dialog("close");
},
"Cancel": function() {
$(this).dialog("close");
}
}
});
$('#delete-dialog2').dialog({
autoOpen: false, width: 350, resizable: false, modal: true, //Dialog options
buttons: {
"Accept": function() {
$(this).dialog("close");
}
}
});
});
</script>
Вид:
<h2>UNIVERSITIES</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
@Html.ValidationSummary(true)
<table>
<tr>
<th>
Name
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.IdUniversidad }) |
@Html.ActionLink("Delete", "Delete", new { id = item.IdUniversidad }, new { @class = "delete-link" })
</td>
</tr>
}
</table>
<div id="delete-dialog" title="Information">
<p>Are you sure you want to delete this?</p>
</div>
<div id="delete-dialog2" title="Error">
<p>Ooops... Something failed</p>
</div>
Он показывает только диалог с кнопками подтверждения и отмены, но при попытке показать cuandro диалог с кнопкой подтверждения не отображается
Сначала, если открыт ('# delete-dialog'), не открывайте второй диалог (' # delete-dialog2 '), когда исполнитель на входе в другое исполнение войти в еще в этой части if (data == '@Boolean.TrueString') { deleteLinkObj.closest("tr").hide('slow'); //Hide Row //(optional) Display Confirmation } else { **$('#delete-dialog2').dialog('open');** }
Благословения
Представленный HTML более полезен для отладки, которая, по-видимому, является главным образом проблемой JavaScript; синтаксический анализ представления asp.net, чтобы увидеть, что «будет» оказано, - это то, что я бы предпочел избежать. Я НЕ ДУМАЮ, что большинство из них является косвенным (диалоги div div там и видны), но вы никогда не знаете. –
убедитесь, что вы добавляете js в конце страницы, в противном случае, что может произойти, ваш js полностью выполняет визуализацию до фактического существования элемента. – SpYk3HH
@ SpYk3HH. Функции JS завернуты в функцию document.ready, поэтому страница должна быть оказанным. Контент, представленный Ajax, - это еще одна история, но образцы показывают отображаемую страницу, а не страницу, запрошенную Ajax. –