【问题标题】:Distinguish which link-button clicked in django区分在 django 中单击了哪个链接按钮
【发布时间】:2021-10-24 13:49:05
【问题描述】:

我有那个 html 代码:

<form id="my-form" method="POST" action="{% url 'my_view' %}">
  {% csrf_token %}
  <div class="row">
    <div class="col-md-6">
      <div class="md-form mb-1">
        <textarea id="message" name="message" rows="2" class="form-control md-textarea"></textarea>
      </div>
    </div>
    <div class="col-md-6">
      <div class="md-form mb-1">
        <textarea id="message_then" name="message_then" rows="2" class="form-control md-textarea"></textarea>
      </div>
    </div>
  </div>

<div class="text-center text-md-left">
  <a class="btn btn-primary" onclick="document.getElementById('my-form').submit();" style="width: 78px;" name="name1">Click1</a>
</div>
<div class="text-center text-md-left">
  <a class="btn btn-primary" onclick="document.getElementById('my-form').submit();" style="width: 78px;" name="name2">Click2</a>
</div>

</form>

现在我想知道点击了哪个“按钮”。不幸的是,request.POST 没有这些信息。

【问题讨论】:

  • click event 未添加到 Django 中的 POST 字典中。我猜你可以用javaScript 处理这个用例
  • @Rvector 谢谢。但是,我不知道该怎么做。
  • 您可以在表单中添加一个隐藏字段,然后您将拥有一个更改隐藏字段值的 js 函数,而不是仅仅执行 document.getElementByID(...).submit()然后调用表单的 submit()

标签: django django-views django-templates


【解决方案1】:

您应该添加另一个字段来指定单击了哪个按钮。

经验: 将此添加到您的表单中 然后像这样更新您的“a”元素 onclick 事件代码:

<a class="btn btn-primary" onclick="update_form(this)" style="width: 78px;">Click1</a>

最后是一些更新表单的js代码

<script>
 function update_form(button){
     document.getElementById("id_button").value = document.getElementById(button).innerText;
     document.getElementById('my-form').submit();
 }
</script>

在您的 django 视图中,使用它来获取选定的按钮: request.POST['id_button']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-25
    • 2012-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多