javascript - 成功后如何切换选项卡

标签 javascript django jquery

我在页面中有用于使用 ajax 的选项卡。在第三个选项卡(撰写)中有一个表单,我希望提交表单时,然后我们转到第一个选项卡(收件箱)。 enter image description here

enter image description here

我想知道这怎么可能?我该怎么办? 我有一个base.html:

{% block extrahead %}
    <script type="text/javascript">
        $( document ).ready( function() {
           $( '#inbox' ).html( '{% trans "waiting ..." %}' ).load( 'inbox/');

           $( '#inbox_list' ).click( function() {

               $( '#inbox' ).html( '{% trans "waiting ..." %}' ).load( 'inbox/');
            });
            $( '
                $( '#outbox' ).html( '{% trans "waiting ..." %}' ).load( 'outbox/');
            });
            $( '#compose_list' ).click( function() {

                $( '#compose' ).html( '{% trans "waiting ..." %}' ).load( 'compose/');
            });
            $( '#trash_list' ).click( function() {

                $( '#trash' ).html( '{% trans "waiting ..." %}' ).load( 'trash/');
            });
        });
     </script>

<div id="dRtabs">
            <ul class="tabber">
                <li><a id="inbox_list" href="#inbox">{% trans "inbox" %}</a> </li>
                <li><a id="outbox_list" href="#outbox">{% trans "sent" %}</a> </li>
                <li><a id="compose_list" href="#compose">{%  trans "compose" %}</a> </li>
                <li><a id="trash_list" href="#trash">{%  trans "trash" %}</a> </li>
            </ul>
            <div class="clear"></div>
            <div id="inbox" class="tabContent">
                loading...
            </div>
            <div id="outbox" class="tabContent">
                loading...
            </div>
            <div id="compose" class="tabContent">
                loading...
            </div>
            <div id="trash" class="tabContent">
                loading...
            </div>
    </div>

在 compose.html 中我有这个函数:

<script type="text/javascript">
        $(function() {
            alert("first");
            $('#compose_form').submit(function() {
                alert("second");
                var temp = $("#compose_form").serialize();
                $.ajax({
                    type: "POST",
                    data: temp,
                    url: 'compose/',
                    success: function(data) {
                       ???
                    }
                });
                return false;
            });
        });
    </script>

我不知道在成功函数中该怎么做。 我有这个用于撰写的 View 功能:

def compose(request, recipient=None):  
    if request.is_ajax():
        if request.method == "POST":
            sender = request.user
            form = ComposeForm(request.POST, recipient_filter=recipient_filter)
            if form.is_valid():
                form.save(sender=request.user)
                messages.info(request, _(u"Message successfully sent."))

                return ???
        else:
            form = ComposeForm()            
        return render_to_response('message/compose.html', {
            'form': form,
            }, context_instance=RequestContext(request))

所以我想知道如何在这些选项卡之间切换以及我应该在 vews.py 中返回什么。我真的需要你的帮助。谢谢 我正在使用 Django

最佳答案

一个简单的触发器就可以用于切换选项卡。

$('#inbox_list').trigger('click'); // .click() may also work.

您将在表单完成并提交后运行此命令

您可以返回 true 或 false,您可以检查此值,如果 true 则向他显示收件箱页面,否则向他显示错误消息。

关于javascript - 成功后如何切换选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13320656/

相关文章:

javascript - 无法实现 60fps 动画

django - 如何检测测试环境(检查/确定是否正在运行测试)

python - 如何在 Django 应用程序中安装翻译 ".po"?

javascript - MVC 部署 - 关于应用程序路径的相对路径问题

javascript - jQuery 指定在数组中搜索值的条件

javascript - Jquery/JavaScript OnClick 事件未在移动设备上触发

javascript - 当文件类型匹配时,将 <a> 标签替换为 <audio tags>

python - Django Rest Framework 给出错误 : You do not have permission to perform this action

javascript - $ ('title' ).text() 在 IE 中不起作用

javascript - 将 dom 元素内的所有文本拆分为 <span>