我有struts1调度操作和一个有两个提交按钮的表单,这些按钮有参数和值,用值调用方法名称。 好吧没有问题。
但是当点击删除按钮时,我想用bootstrap对话框确认。
$('.btnDelete').on('click', function(e){
var $form=$(this).closest('form');
e.preventDefault();
$('#confirm').modal({ backdrop: 'static', keyboard: false })
.one('click', '#delete', function (e) {
var sectorId = $(this).parent().parent().children()[0].innerHTML;
var input = document.createElement("input");
input.setAttribute("type", "hidden");
input.setAttribute("name", "sectorId");
input.setAttribute("value", sectorId);
document.getElementById("sectorForm").appendChild(input);
$("#sectorForm").submit();
});
});
此处需要e.preventDefault()
才能停止表单提交。
当从对话框中单击删除按钮时,将传递隐藏参数并提交表单。但是服务器显示错误信息以下。
HTTP状态500 - 请求[/ SectorManagement]不包含名为“action”的处理程序参数。这可能是由标签文本中的空格引起的。
请注意,删除Bootstrap对话框时没有问题。
答案 0 :(得分:0)
解决方案是添加一个名为action和value的附加隐藏参数。
$('.btnDelete').on('click', function(e){
var $form=$(this).closest('form');
e.preventDefault();
$('#confirm').modal({ backdrop: 'static', keyboard: false })
.one('click', '#delete', function (e) {
var sectorId = $(this).parent().parent().children()[0].innerHTML;
var input = document.createElement("input");
input.setAttribute("type", "hidden");
input.setAttribute("name", "sectorId");
input.setAttribute("value", sectorId);
document.getElementById("sectorForm").appendChild(input);
input = document.createElement("input");
input.setAttribute("type", "hidden");
input.setAttribute("name", "action");
input.setAttribute("value", delete);
document.getElementById("sectorForm").appendChild(input);
$("#sectorForm").submit();
});
});
我不知道但是可以有更好的解决方案。 会等你的答案。