为什么不打开对话框

时间:2012-03-28 03:08:02

标签: jquery asp.net-mvc-3 jquery-ui

为什么在以粗体显示行时打开对话框“elete-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')否则执行输入到此部分中的else if (data == '@Boolean.TrueString') { deleteLinkObj.closest("tr").hide('slow'); //Hide Row //(optional) Display Confirmation } else { **$('#delete-dialog2').dialog('open');** }

祝福

1 个答案:

答案 0 :(得分:1)

这个快速测试似乎运行良好:

http://jsfiddle.net/bES2X/1/

与您的不同之处有两点:

  1. 使用的确切标记。我猜了一下。如果我正确理解您的ASP.NET代码,您可能会为您的行使用多个ID,这是无效的标记。

  2. $ post函数(我刚刚编写了一个失败的场景)。似乎href将正确评估 IF 您想要的是第一个数据链路的HREF。那么@Boolean.TrueString是否有条件解决?尝试观看此表达式或console.log进行测试。