首页 > 解决方案 > 区分在 django 中单击了哪个链接按钮

问题描述

我有那个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的是没有这些信息。

标签: djangodjango-viewsdjango-templates

解决方案


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

Exp:将此添加到您的表单中,然后更新您的“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']


推荐阅读