我有一些疯狂的麻烦,我无法弄清楚如何解决它。我有一个表单,其中包含" return submitNotes"在提交按钮(onclick)上。我有submitNotes函数,它似乎正在调用它,但在我的函数中,我有一个似乎没有启动的ajax调用。我已经在ajax调用中设置了警报,当它完成时,好奇的是当我在页面底部返回false时警报才会消失。如果我评论退货,它甚至不会显示警报。在这两种情况下,ajax呼叫似乎都没有触及它的页面。你们可以做些什么来帮忙!
function submitNotes(rID){
ts = getTs(); //this is so IE sees a unique URL being called everytime.
var consignor = $('#consignor').val()
var consignee = $('#consignee').val();
var consignorRequired = $('#consignorRequired').val();
if(consignorRequired=='true'){
if(consignor==''){
alert('Consignor information is required!');
return false;
}
if(consignee==''){
alert('Consignee information is required!');
return false;
}
}
$('#loading_notes').show();
$.get('/scripts/claim_sendTo.asp?action=pending&rID='+rID+'&auditorID=1',function(){
alert('hello2');
$('#claimForm').submit();
});
//return false;
}
答案 0 :(得分:0)
您可能想要尝试的是阻止事件的默认行为。
您可能希望在表单上使用onsubmit =“”而不是onclick =“”,因为这样您就可以停止在核心提交表单。
然后,您将要将事件对象传递给提交函数。它允许更好地控制事件,而不必过多依赖返回值。
<form method="post" action="X" onsubmit="submitNotes(event)">
// Somewhere in your JavaScript
function submitNotes(event) {
if (event.preventDefault) event.preventDefault();
else window.event.cancelBubble = true;
// the rest of the event code
}
这应该是一个好的开始。
如果您想坚持使用onclick
事件,可能需要尝试以下操作:
<form method="post" action="X" onsubmit="if (event.stopPropagation) event.stopPropagation(); else window.event.cancelBubble = true">
这应该阻止表单处理提交。
我可以建议您使用jQuery的$('form').submit( ... )
事件处理吗?
答案 1 :(得分:0)
当您取消注释return false
时警报会消失,因为您处于onsubmit事件的上下文中。从该事件返回false
会取消它,允许您的jquery执行。否则,表单会重新加载页面