javascript - Django-动态表单增量ID为表单集中添加的每个新输入元素

标签 javascript jquery html django django-forms

我有一个表单,需要 4 个字段作为输入,如下所示:-

forms.py

AuthorFormset = modelformset_factory(
    Author,
    fields=('due_date','author' ),
    extra=5,
    widgets={'due_date': forms.DateInput(attrs={
            'class': 'form-control', 'placeholder': 'Date'}),
            'author': forms.TextInput(attrs={
            'class': 'form-control',
            'id': 'txtSearch',
            'placeholder': 'Participants'
        }),
    }

我已向字段作者添加了一个 css ID,它是一个文本输入。 对于此文本输入,我还通过 Jquery 自动完成功能进行 Ajax 调用。

view.html

<form class="form-horizontal" method="POST" action="">
    {% csrf_token %}
{{ formset.management_form }}
{% for form in formset %}
<div class="row form-row spacer">
    <div class="col-2">
        <div class="input-group">
            {{form.author}}
        </div>
    </div>

Javascript

<script>
  $(document).ready(function(){ 
      $("#txtSearch").autocomplete({
          source: "/ajax_calls/search/",
          minLength: 2,
          open: function(){
              setTimeout(function () {
                  $('.ui-autocomplete').css('z-index', 99);
              }, 0);
          }
        });

  });

</script>

一切工作正常,只是我只能处理第一个字段的 Ajax 调用。 我想为动态表单中添加的每个新字段增加 ID。

最佳答案

您还可以使用 .each() 对 jquery 中的每个字段进行循环,而不是递增 id ,例如在具有类型属性 <input type="text" ...> 的每个输入上:

$('input[type="text"]').each(function() {
   var $input = $(this);
   $input.autocomplete({
      source: "/ajax_calls/search/",
      minLength: 2,
      open: function(){
         ...
      }
   });
});

引用文献: https://api.jquery.com/each/

编辑:jquery 选择器中缺少结束括号

关于javascript - Django-动态表单增量ID为表单集中添加的每个新输入元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55760253/

相关文章:

html - 垂直居中 :after content in Bootstrap 3 panel-heading

iphone - Youtube-嵌入了 iframe 的视频在 iPhone 的 Safari 中经常无法播放

javascript - 使用 React 和一个 <div> id 的网页

javascript - 如何获取元素的文本但不包括该元素的子元素?

javascript - 使用 jquery 顺利地为每个导航菜单更改站点的背景图像

javascript - 为什么我的函数没有按预期显示和隐藏元素?

jquery - css 过渡类删除步骤

javascript - appendgrid - 将网格数据作为 JSON 对象而不是常规序列化

javascript - Jquery Ajax 调用返回

javascript - 使用 Node.js 作为 highcharts 的数据源