如何通过JavaScript发送request.POST中的当前表单选项卡

如何通过JavaScript发送request.POST中的当前表单选项卡,javascript,jquery,django,Javascript,Jquery,Django,我有一个表单,表单中有一系列对象,每个对象都有一个选项卡。例如: 对象1:表1 对象2:表2 对象3:表3 代码示例: <ul class="nav nav-pills" id="evidence-formset-tab" role="tablist"> <li class="nav-item"> <a class="nav-link active" id

我有一个表单,表单中有一系列对象,每个对象都有一个选项卡。例如:

对象1:表1 对象2:表2 对象3:表3

代码示例:

<ul class="nav nav-pills" id="evidence-formset-tab" role="tablist">
  <li class="nav-item">
    <a class="nav-link active" id="evidence-form-1-tab" data-toggle="pill" href="#evidence-form-1" role="tab" aria-controls="evidence-form-1" aria-selected="true">1</a>
  </li>
  <li class="nav-item">
    <a class="nav-link" id="evidence-form-2-tab" data-toggle="pill" href="#evidence-form-2" role="tab" aria-controls="evidence-form-2" aria-selected="false">2</a>
  </li>
</ul>
是否有方法注入当前选项卡的值,然后在后端的request.POST中处理它?

我假设您正在使用。如果这是正确的,您应该首先提到它,并标记您的qeustion

您可以在您的应用程序中的某个位置添加标记。然后添加一个事件侦听器,每当用户更改选项卡时,该侦听器都会更新此隐藏输入的值:

$'a[data toggle=pill]'。在'show.bs.tab'上,e=>{ $'activetab'.vale.target.href.replace/^/; } 例如,如果用户单击选项卡1,则会将输入值设置为证据-form-1。然后,当用户提交表单时,浏览器将把隐藏输入的值作为activetab=execution-form-1发送到服务器,该值可以从Django读取

请注意,只有用户至少切换一次选项卡,输入才会有值。如果用户在提交表单之前没有单击任何选项卡,则可能会出现问题。我将留给您来解决如何处理这种情况。

我假设您正在使用。如果这是正确的,您应该首先提到它,并标记您的qeustion

您可以在您的应用程序中的某个位置添加标记。然后添加一个事件侦听器,每当用户更改选项卡时,该侦听器都会更新此隐藏输入的值:

$'a[data toggle=pill]'。在'show.bs.tab'上,e=>{ $'activetab'.vale.target.href.replace/^/; } 例如,如果用户单击选项卡1,则会将输入值设置为证据-form-1。然后,当用户提交表单时,浏览器将把隐藏输入的值作为activetab=execution-form-1发送到服务器,该值可以从Django读取

请注意,只有用户至少切换一次选项卡,输入才会有值。如果用户在提交表单之前没有单击任何选项卡,则可能会出现问题。我将留给您来解决如何处理这种情况。

您可以使用$.nav-item.active a.text来获取活动选项卡的值,然后将该值放入输入标记中,并将其附加到表单中,以便也可以提交该值

演示代码: 函数验证注册器{ 违约事件; console.log$.nav-item.active a.text //获取活动文本的类并在表单中追加。。 $'DEVICE-formset'。追加 $'evidence-formset'.attr'action',{%url'解释'%}.submit; } 家 菜单1 点击我 您可以使用$.nav-item.active a.text获取活动选项卡的值,然后将该值放入输入标记中,并将其附加到表单中,以便也可以提交该值

演示代码: 函数验证注册器{ 违约事件; console.log$.nav-item.active a.text //获取活动文本的类并在表单中追加。。 $'DEVICE-formset'。追加 $'evidence-formset'.attr'action',{%url'解释'%}.submit; } 家 菜单1 点击我
您需要根据所选选项卡获取1或2?正是如此,这就是我尝试获取的。您需要根据所选选项卡获取1或2?正是如此,这就是我尝试获取的。感谢您的回答,看起来不错,出于某种原因,在我的终端控制台上。log$.nav-item.active a.text没有任何值。它总是空的。这没有任何意义。您使用的Bootstrap是哪个版本?当前我使用的是Bootstrap 4该版本将活动类添加到标记中,因此使用$.nav-link.active.text我不知道如何使用,,但当您说值未显示时,我首先想到:。谢谢您的回答,看起来不错,出于某种原因,在我这方面,console.log$.nav-item.active a.text没有任何值。它总是空的。这没有任何意义。您使用的Bootstrap是哪个版本?当前我使用的是Bootstrap 4该版本将活动类添加到标记中,因此使用$.nav-link.active.text我不确定如何使用,,但当您说值未显示时,我首先想到的是:。
function validateRegister() {
    event.preventDefault();
    $('#evidence-formset').attr('action', "{% url 'interpretation' %}").submit();
}