阻止执行数据 ajax 属性

Preventing data-ajax attributes from executing

本文关键字:ajax 属性 数据 执行数 执行      更新时间:2023-09-26

我有这个链接(也是小提琴):

<a class="update noClick" data-ajax="true" data-ajax-mode="replace" data-ajax-update="#vote11" href="/Tutors/RateNegative/11" onclick="return window.confirm('Are you sure?');">qwer</a>

现在我希望它做的是,在用户单击它之后,我希望它显示确认窗口(它这样做),但我想阻止 ajax 做任何事情,除非用户接受确认窗口。目前,如果用户拒绝此窗口,ajax 无论如何都会发出请求。

我该怎么做?

试试这个小提琴: http://jsfiddle.net/YddmF/

我只是将 ajax 移动到一个单独的隐藏锚点,如果用户确认,则使用 javascript 单击它。

.HTML

<a href="#" onclick="window.checkUser();">qwer</a>
<a id="ajax-anchor" class="update" data-ajax="true" data-ajax-mode="replace" data-ajax-update="#vote11" href="/Tutors/RateNegative/11"></a>

.JS

window.checkUser = function () {
  if (window.confirm('Are you sure?')) {
        document.getElementById("ajax-anchor").click();
    }
}

.CSS

#ajax-anchor { display: none; }

解决方案非常简单。我需要添加data-ajax-begin属性,而不是使用属性onclick并将我的代码放在那里。如果begin返回 false,则不会发生任何操作。