首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我的代码不工作-表单未提交

我的代码不工作-表单未提交
EN

Stack Overflow用户
提问于 2021-01-16 14:42:58
回答 1查看 39关注 0票数 0
代码语言:javascript
运行
复制
<!-- The form markup -->
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog modal-dialog-centered">
        <div class="modal-content">
            <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
            <div>
                <h1 class="text-primary fw-bold text-center log-in-title">Log In</h1>
            </div>

            <div class="mt-3 text-center">
                <!-- The form -->
                <form class="mod-auth">
                    <div class="mb-3">
                        <input id="mod-auth-username" type="text" placeholder="Username" name="username" class="form-control" required>
                    </div>
                    <div class="mb-3">
                        <input id="mod-auth-password" type="password" placeholder="Password" name="password" class="form-control" required>
                     </div>
                    <div class="d-grid gap-2 mx-auto">
                        <button class="btn btn-primary" type="button">Log in</button>
                    </div>
                </form>
                <hr>
                <h6>Don't have an account? <a href="/sign-up/?next={{request.path}}">Sign up</a></h6>
            </div>
        </div>

    </div>
</div>
代码语言:javascript
运行
复制
// AJAX Post request
$(document).on('submit', '.mod-auth', (e) => {
    e.preventDefault();
    console.log('hi');
    $.ajax({
        url: '/log-in/',
        type: 'POST',
        data: {
            csrfmiddlewaretoken: $('input[name=csrfmiddlewaretoken]').val(),
            username: $('#mod-auth-username').val(),
            password: $('#mod-auth-password').val(),
        },
        success: function() {},
    });
});
代码语言:javascript
运行
复制
# views.py
# This method already handles a log in page and the AJAX post request code given above sends request here.
def log_in(request):
    if request.user.is_authenticated:
        return redirect('/')

    if request.method == 'POST':
        username = request.POST.get('username', '')
        password = request.POST.get('password', '')

        user = authenticate(username=username, password=password)
        if user is not None:
            login(request, user)
            if request.POST.get('next', ''):
                return redirect(f"{request.POST.get('next', '')}")
            return redirect(f"/{username}/")
        else:
            messages.error(request, 'Either the username or password is wrong! Note that your password and username are case sensitive')
            return redirect(f'{request.path}?next={request.POST.get("next", "")}')

    return render(request, 'log_in.html')

我的代码不能工作,我添加了一个jQuery表单提交事件,它不能工作。我不知道问题出在哪里。

该表单是Modal (Bootstrap)的一部分,当用户在未登录的情况下尝试单击Like按钮时将触发该表单,该模式包含一个表单,必须填写并提交该表单,然后执行AJAX Post请求并将数据发送到views.py。

谢谢。非常感谢您的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-16 14:51:50

兄弟,按钮类型应为submit

代码语言:javascript
运行
复制
<button class="btn btn-primary" type="submit">Log in</button>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65747132

复制
相关文章

相似问题

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