我正在使用以下<a>
标记来显示它所做的简单确认。但是,当我单击“取消”按钮时,它仍然执行post方法。根据我的理解,如果单击“取消”按钮,则在确认前面return
会导致表单不发布。
<a href="#"
data-potr-action="delete"
data-potr-val="@item.RID"
onclick="return confirm('Are you sure you want to delete this Request?');"
class="btn btn-default btn-sm">
<i class="glyphicon glyphicon-trash"></i> Delete
</a>
我在页面末尾有这段代码,但我认为它与此问题无关。在“确认”对话框中选择“取消”时,我认为不会触发点击事件。
这只是获取data-action和data-value中的值,并将它们存储到隐藏字段中。这是通过点击完成的,它不应该到达。
@section scripts {
<script>
$(document).ready(function () {
// Hook events on buttons and anchors
buildClickEvents();
});
// Hook events on buttons and anchors
function buildClickEvents() {
$("[data-potr-action]").on("click", function (e) {
e.preventDefault();
$("#EventCommand").val(
$(this).data("potr-action"));
$("#EventArgument").val(
$(this).attr("data-potr-val"));
$("form").submit();
});
}
</script>
}
答案 0 :(得分:0)
要回答您的问题,请勿确认是否阻止表单发布。按下&#34; OK&#34;它返回true或者如果按下则为假&#34;取消&#34;按钮。请参阅W3c
你能做什么如下:
function buildClickEvents() {
$("[data-potr-action]").on("click", function (e) {
e.preventDefault();
var result = confirm('Are you sure you want to delete this Request?');
if(result == false){
return;
}
$("#EventCommand").val(
$(this).data("potr-action"));
$("#EventArgument").val(
$(this).attr("data-potr-val"));
$("form").submit();
});
}
从标记中删除以下内容:
onclick="return confirm('Are you sure you want to delete this Request?');"
答案 1 :(得分:0)
$("[data-potr-action]").on("click", function (e) {
if(confirm("your message")){
$("#EventCommand").val(
$(this).data("potr-action"));
$("#EventArgument").val(
$(this).attr("data-potr-val"));
$("form").submit();
}
e.preventDefault();
});