首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ajax表单提交& Javascript确认错误

Ajax表单提交& Javascript确认错误
EN

Stack Overflow用户
提问于 2012-03-09 06:06:03
回答 2查看 1.3K关注 0票数 0

我有一个通过Ajax提交的表单,目前它工作得很好。我尝试添加一个确认选项,通过添加以下行来允许/阻止Ajax提交:

代码语言:javascript
运行
复制
    var answer = confirm('Submit now?');
    return answer // answer is a boolean

    if(answer) { ... }

下面是我的完整函数,如您所见,它在单击submit按钮时触发。当用户在对话框中选择in时,会出现错误。整个页面都会刷新,并且任何单个Ajax警告都会在空白屏幕的顶部返回。在正常情况下,如果没有此确认码,错误消息将出现在表单底部的div#result标记中。

代码语言:javascript
运行
复制
$("#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;

        }

    });

我应该如何实现不刷新屏幕的确认对话框?任何建议都将不胜感激。谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-09 06:08:56

您正在执行return answer。这在这里没有任何意义。

它将停止JavaScript函数,并返回布尔值。删除这一行,您就可以设置

另外,如果确认框为false,则添加此选项以使您的提交不会触发;)

代码语言:javascript
运行
复制
if (answer){
    // your ajax call
}
else {
    return false;
}
票数 2
EN

Stack Overflow用户

发布于 2012-03-09 06:09:22

请不要使用以下命令:

代码语言:javascript
运行
复制
<input type="submit">

使用以下命令:

代码语言:javascript
运行
复制
<input type="button">

“提交”按钮可自动提交表单。一个普通的按钮什么也不做。你可以用它来监听点击,然后提交表单,或者不用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9625771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档