昨天下午一直纠结一个问题,表单无法提交,代码是这样的:
var deleteDialog = $("#dialog-confirm-delete").show().dialog({
resizable : true,
closable: true,
draggable: true,
width: 280,
height : 150,
modal : true,
buttons:[{
text:'确认删除',
handler:function(){
var deleteAction = getAction("structure/deleteMainDanElement.do");
$("#form_delete").attr('action',deleteAction);
$("#form_delete").submit();
refresh();//注意看这里
}
},{
text:'取消',
handler:function(){
$('#dialog-confirm-delete').dialog('close');
}
}]
});
deleteDialog.dialog("open");
//这里是refresh方法
function refresh(){
//刷新页面
location.reload()
}
html里面是这样的:
<div id="dialog-confirm-delete" title="删除确认" class = "easyui-dialog" style="display:none;">
<form id="form_delete" method="post">
<input type="hidden" id="ELEMENT_ID2" name="ELEMENT_ID">
<input type="hidden" id="TAG_ID2" name="TAG_ID">
</form>
<p>
该元素将被永久删除,并且无法恢复。您确定吗?
</p>
</div>
路径确认没问题,别人看代码也看不出什么问题,打开F12一直查一直查,真查不到问题,network没有东西、console也没有东西,后台打的断点又跳不进去。
直到今天有点事情耽搁了,前端断点停了几分钟,意外发现跳转进去了。这才醒悟过来,这是前端刷新太快了,还没来得及请求就已经刷新了。找了一会儿,没有找到form的submit回调方法,后选用ajax提交。修改的代码是这样的:
这个还是提醒了我,前端调试的时候务必注意异步同步的问题。这样导致调试了一下午,确实是浪费时间了。