【问题标题】:Input form not submitting after getJSON callgetJSON 调用后输入表单未提交
【发布时间】:2016-11-02 04:36:10
【问题描述】:

我一直在尝试创建一个提交表单,该表单既可以调用 getJSON 以在 html 模板上显示响应,也可以提交输入。但我只能提交输入或显示从 getJSON 调用收到的响应。我尝试删除 preventDefault 方法并将其添加到我的函数中,但它仍然无法正常工作。 提前感谢您的任何建议!

<form method="post" id="form">
    <div>
        <input type="text" name="newpost" style="width:300px;" placeholder="post here...">
        {% if user %}
            <input type="hidden" name="user_id" value="{{ user.key.id() }}">
            <input id="inputButton" type="submit" value="Done">
            <div id="jsonInfo"></div>
            <script>
                $(document).ready(function (){

                                $('#inputButton').click(function (e) {
                                    var URL = 'URLEXAMPLE';
                                    $.getJSON(URL, function(data){

                                    for (var i = 0; i < data.length; i++){
                                        var info = data[i].content;
                                        $("#jsonInfo").append(info);
                                    };
                                });
                            e.preventDefault();


                        });


                });

            </script>
        {% else %}
            <input type="button" class="button_active" onclick="location.href='/login'" value="Done">
        {% endif %}
    </div>
</form> 

【问题讨论】:

    标签: javascript jquery ajax forms getjson


    【解决方案1】:

    在for之后做一个

    $('#form').submit(); 提交表单,e.preventDefault(); 目前正在阻止默认表单提交,因此您可以发送 ajax 请求

    【讨论】:

    • 表单已提交,但 AJAX 响应立即消失
    • 这是您从 man 页面重定向的正常行为
    • 有没有办法提交输入然后一键获取AJAX响应?
    • 简单的答案是肯定的,但你不需要 ajax
    • 太棒了!你介意解释一下吗?我正在做一个项目,它要求我通过单击一个按钮同时进行 AJAX 调用和提交输入。如果太麻烦,我完全理解。谢谢你的帮助。
    猜你喜欢
    • 1970-01-01
    • 2012-07-01
    • 2018-09-30
    • 1970-01-01
    • 2013-05-19
    • 1970-01-01
    • 1970-01-01
    • 2019-02-28
    • 1970-01-01
    相关资源
    最近更新 更多