【问题标题】:Submitting modal form via Ajax通过 Ajax 提交模态表单
【发布时间】:2014-05-10 15:29:12
【问题描述】:

我的问题实体有一个正常形式。

该表单中有一个模态表单,允许用户为他们的问题添加额外的标签。

这是我的模态表单的图像:

这是我的模态表单的树枝模板:

<div id="mymodal" class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel" aria-hidden="true">
<div class="modal-dialog">
    <div class="modal-content">
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
            <h4 class="modal-title" id="myModalLabel">Add New Tag</h4>
        </div>
        <form class="tagForm" id="tag-form" action="{{ path('addTag') }}" method="post" enctype="multipart/form-data">
            <div class="modal-body">
                <label for="tagName">Tag Name: </label>
                <input id="tagName" class="form-control" type="text"/>

            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                <input id="tag-form-submit" type="submit" class="btn btn-primary" value="Add Tag">
            </div>
        </form>
    </div>
</div>

查看我的模态表单的脚本:

$('#addTag').click(function(e) {
        e.preventDefault();
        $('#mymodal').modal();
    });

我的模态表单提交脚本:

$(function() {

    $('#tag-form').submit(function() {
        $.ajax({
            type: "POST",
            url: "{{ path('addTag') }}",
            data: $('form.tagForm').serialize(),
            success: function(response) {
                alert(response['response']);
            },
            error: function() {
                alert('Error');
            }
        });
        return false;
    });
});

我的问题是每次点击添加标签按钮,包括问题表单在内的所有表单也都提交了。

我真正想要的只是提交模态表单。

【问题讨论】:

    标签: jquery ajax forms twitter-bootstrap symfony


    【解决方案1】:

    看起来你在提交事件上触发了这个,这就是为什么它......提交?也许这会更好?

    $(function() {
    
    $('#tag-form-submit').on('click', function(e) {
        e.preventDefault();
        $.ajax({
            type: "POST",
            url: "{{ path('addTag') }}",
            data: $('form.tagForm').serialize(),
            success: function(response) {
                alert(response['response']);
            },
            error: function() {
                alert('Error');
            }
        });
        return false;
    });
    });
    

    【讨论】:

    • 感谢兄弟的工作。我也认为这是问题所在,但我不知道如何在 jQuery 上实现正确的代码,因为我是新手。
    • 很高兴为您提供帮助,如果您想了解更多关于 jQuery 的知识,我可以在youtube.com/watch?v=GNb8T5NBdQg&list=PL6B08BAA57B5C7810 推荐一系列视频教程
    • 谢谢。我已经在观看 MyBringback 的 jQuery 教程,看起来还不错。我也去试试看这个。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-20
    • 2011-04-21
    • 1970-01-01
    相关资源
    最近更新 更多