我有一个视图,其上有一个删除按钮,在表格的每一行中创建一个表单:
<td>
@using (Html.BeginForm("Delete", "FP/WorkItem",
new { fId = Model.FPId, workId = @w.FId })) {
<input name="deleteWorkItem" type="submit" value="Delete" class="btn btn-default" onclick="return confirm('Are you sure?');" />
}
</td>
这一切都很好,但我不想要糟糕的警报对话框。我想使用像bootbox这样的好东西。所以我修改了这个以删除按钮上的onclick并添加了一些JavaScript:
$("input[name='deleteWorkItem']").click(function (e) {
//return confirm('Delete selected item?');
e.preventDefault();
bootbox.confirm("Delete selected item?", function (result) {
return result;
});
});
如果没有preventDefault
,则永远不会出现确认框。使用preventDefault
,如果用户决定不删除,则表单不会回发。
我怎么能同时拥有两者?
答案 0 :(得分:0)
保持e.preventDefault()
和确认函数回调手动触发表单提交:
bootbox.confirm("Delete selected item?", function (result) {
$(this).closest("form").submit()
return result;
}.bind(this));
答案 1 :(得分:0)
您必须阻止隐藏表单而不是按钮。 查看示例:
$("form").on("submit", function (e) {
e.preventDefault(); //prevent default form submit
//do the work here
});
$("#buttonToSubmit).on("click", function(){
//Line used to force submit the form
$("form").off("submit").submit();
});