使用JavaScript提交Django表单

3 投票
3 回答
9762 浏览
提问于 2025-04-16 18:15

好的,这里有一段代码 -

    <form id="myform" name="myform" action="." method="post">
        <a href="javascript: document.forms['myform'].submit();" name="myform">Submit
        </a>
    </form>    

我正在使用一个链接和一些JavaScript代码来向我的Django服务器提交一个表单。在服务器上,我用以下代码来检查这个提交的请求 -

    if 'myform' in request.POST:
        '''handle the form submition'''
        return True
    return False

但是这返回的是false。你们知道为什么吗?

相关问题:

3 个回答

2

我猜“使用 href”是指你通过代码点击一个链接吧?链接总是会发送 GET 请求,所以这就是为什么会失败的原因。你可以用 JavaScript 提交整个表单,方法是 document.forms.myform.submit();,这样就会用 POST 方式发送,因为你在表单里指定了这个方法。

3

这是我用来解决问题的方法 - (非常感谢fosco和adam!)

    <form id="my_form" action="." method="post">
        <a href="#" onclick="document.forms['my_form'].submit();">Call Form</a>
        <input type="checkbox" name="call_form" checked style="visibility:hidden"><br>
        <input type="submit" value="create form" style="visibility:hidden" />
    </form>`
0

这个表单里有没有输入框?你应该检查这个,而不是表单的名字。因为表单本身没有什么内容,那到底提交了什么数据呢?比如说,有一个叫做 someData 的文本输入框。if 'someData' in request.POST:

撰写回答