我有一个通过Ajax提交的表单,它目前运行得很好。我试图添加一个确认选项,通过添加以下行来允许/阻止Ajax提交:
var answer = confirm('Submit now?');
return answer // answer is a boolean
if(answer) { ... }
下面是我的全部功能,正如你所看到的,点击提交按钮就会启动。当用户在对话框中选择"确定"时,会发生错误。整个页面被刷新,并且任何单个Ajax警告都会在空白屏幕的顶部返回。在正常情况下,如果没有此确认代码,错误消息将显示在表单底部的div#result标记中
$("#submitbtn").click(function() {
var answer = confirm('Submit now?');
return answer // answer is a boolean
if(answer) {
$('#result').html('<img id="loading" src="images/loading.gif" />').fadeIn();
var input_data = $('#create_po').serialize();
$.ajax({
type: "POST",
url: "<?php echo "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>",
data: input_data,
success: function(msg){
$('#loading').remove();
$('<div>').html(msg).appendTo('div#result').hide().fadeIn('slow');
}
});
return false;
}
});
我应该如何实现不刷新屏幕的确认对话框?如有任何建议,我们将不胜感激。谢谢
您正在执行return answer
。这在这里没有任何意义。
它将停止JavaScript函数,并返回布尔值。删除这行,你就设置了
此外,如果确认框为假,请添加此项以使您的提交不会被激发;)
if (answer){
// your ajax call
}
else {
return false;
}
不要使用这个:
<input type="submit">
使用此:
<input type="button">
提交按钮会自动提交表单。常规按钮不会执行任何操作。你可以用它来收听点击,然后提交你的表格,也可以不提交。