【问题标题】:How to show a confirm when i click a button?单击按钮时如何显示确认?
【发布时间】:2013-04-18 19:08:43
【问题描述】:

我正在使用 asp.net MVC。我正在尝试在用户单击按钮时向用户显示自定义消息。

这里是视图:

@foreach (var item in Model.ticketList)
 {
var number = item.TicketId.ToString();
<tr>
    <td>

       @Html.ActionLink(number, "Details", new {id=item.TicketId })
    </td>
    <td>Title : 
        @Html.DisplayFor(model => item.Title)
    </td>
    <td> Date Submitted : 
        @Html.DisplayFor(model => item.DateCreated)
    </td>
    <td id="status"> Ticket Status : 
        @if (item.Status == "open") 
        {
            <span id="open">Open</span>
            @Html.ActionLink("Close","Close",new {id=item.TicketId})
        }
        @if (item.Status == "closed") 
        {
             <span id="closed">Closed</span>
            @Html.ActionLink("Open","Open",new {id=item.TicketId})
        }
    </td>
</tr>
<tr id="ticket-backcolor">
    <td colspan="4">Description :
        @Html.DisplayFor(model => item.Description)
    </td>
</tr>

}

动作链接是修改字段值的动作控制器。这样可行。我想要做的是显示一个确认窗口,在该窗口中我询问用户是否确定要关闭/打开票证。

这是我迄今为止一直在尝试做的事情:

<script type="text/javascript">
function alert() {
    confirm("are you sure you want to close this ticket ?");
}
$(function () {
    $("span[id='open']").click(alert)
});
</script>

打开选项也是如此。这不起作用。有人可以帮我吗?

编辑:

<script type="text/javascript">
$(document).ready(function () {
    $("td[id='status']").click(function () {
        return confirm('Are you sure you want to open the ticket ? ');
    });
});
</script>

<script type="text/javascript">
$(document).ready(function () {
    document.getElementById("closed").click(function () {
        return confirm('Are you sure you want to open the ticket ? ');
    });
});
</script>

第二个脚本也不起作用。 此脚本适用于标签。无法让它为 2 个跨度标签工作。

【问题讨论】:

  • 使用:return confirm("你确定要关闭这张票吗?");
  • 从您的操作方法返回 javascriptresult 实例 ..
  • 确认对话框不显示。我认为这是因为 $(function () { $("span[id='open']").click(alert) });没有得到正确的跨度?
  • @user2287957 使用 JS 控制台检查它是否匹配任何元素。另外,为什么要在&lt;span&gt; 上处理事件? &lt;a&gt; 完全有可能在点击事件冒泡进入跨度之前“消耗”点击事件。

标签: jquery asp.net-mvc


【解决方案1】:

使用确认

var answer = confirm("Are you sure?");
if (answer) {
  //Confirm true code
}else{
  //confirm false code
}

【讨论】:

  • 中使用这个?
  • 不,阅读关于 javascript 的初学者教程,然后阅读有关 jQuery 的内容
【解决方案2】:
<script type="text/javascript">
function alert() {
    confirm('are you sure you want to close this ticket ?');
}
$(function() {
    $('#open').click( function() {
        alert();
    });
});
</script>

试试这个。

【讨论】:

  • 不起作用。它认为这是因为 $("span[id='open']") 没有得到跨度
【解决方案3】:

请尝试以下代码

<script type="text/javascript">
        function closeTicketConfirm() {
            if (confirm("are you sure you want to close this ticket ?")) {
                //Do your code for close ticket
            }
        }

        function openTicketConfirm() {
            if (confirm("are you sure you want to open this ticket ?")) {
                //Do your code for open ticket
            }
        }

        $(function () {
            $("span[id='open']").click(function() {closeTicketConfirm();});
            $("span[id='closed']").click(function() {openTicketConfirm();});
        });
</script>

【讨论】:

  • 又没有结果。是因为我显示搜索其他内容而不是 span 吗?
【解决方案4】:

我找到了我的问题的解决方案并且它有效。

@Html.ActionLink("Close Ticket", "Close", new { id = item.TicketId }, new  { onclick=" return confirm ('Are you sure you want to close ticket ?')"})

这将在执行操作之前显示确认消息。

【讨论】:

    猜你喜欢
    相关资源
    最近更新 更多
    热门标签