【发布时间】:2015-12-27 05:57:54
【问题描述】:
我有一个 Telerik 网格。对于外行来说,这只是意味着我在页面上有一个表格。
在这个 Telerik 网格上,我有一个用于删除记录的列。我最初拥有它是为了让用户可以点击,然后它会触发一个 javascript 确认对话框。如果用户点击确定,它将调用删除链接;如果不是,那么它将取消而不刷新页面。原始代码如下。
columns.Template(
@<text><a href='@Url.Content("~/HazardControl/Delete/" + @item.Id)'
style="cursor:pointer;" onclick = "return confirm('Are you sure you want to delete this record?');">
<img src="~/Content/Images/DeleteItem.gif" alt="Delete" />
</a></text>
).Width(50).HtmlAttributes(new { style = "text-align:center" });
现在,我现在的要求是他们想在确认删除之前检查一条记录是否符合删除条件,所以现在我的代码如下所示:
columns.Template(
@<text><a href='@Url.Content("~/Training/Delete/" + @item.Id)'
style="cursor:pointer;" onclick="deleteConfirmation(@item.Id)">
<img src="~/Content/Images/DeleteItem.gif" alt="Delete" />
</a></text>
).Width(50).HtmlAttributes(new { style = "text-align:center" });
<script type="text/javascript" >
function deleteConfirmation(recordId) {
$.ajax({
url: '@Url.Action("ValidateDelete", "Training")',
type: 'POST',
data: { id: recordId },
success: function (result) {
var deleteRecord = false;
if (result) {
var userConfirm = confirm('Are you sure you want to delete this record?')
if (userConfirm) {
deleteRecord = true;
}
}
else {
alert('Delete no allowed, the record is in use!');
}
return deleteRecord;
}
});
return false;
}
</script>
我认为我可以通过在确认之前使用 AJAX 调用来完成此操作,但实际发生的是验证部分正确发生,然后尽管返回 false 或 true,链接仍会激活。我认为,当您使用锚标记并使用 onclick 方法并返回 false 时,什么都不会发生,但使用 AJAX 时似乎并非如此。我在这里做错了什么?以前有这样做过吗?这里可以吗?
【问题讨论】:
-
我认为你需要阻止默认操作:api.jquery.com/event.preventdefault
标签: javascript ajax asp.net-mvc telerik