防止data-ajax属性执行

时间:2013-09-27 01:22:38

标签: javascript html ajax asp.net-mvc

我有这个链接(也是fiddle):

<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仍会发出请求。

我该怎么做?

2 个答案:

答案 0 :(得分:1)

试试这个小提琴: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; }

答案 1 :(得分:0)

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