Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery.repeater不';不能使用jQueryUI排序表_Jquery_Jquery Ui_Jquery Ui Sortable_Repeater_Jquery.repeater - Fatal编程技术网

jQuery.repeater不';不能使用jQueryUI排序表

jQuery.repeater不';不能使用jQueryUI排序表,jquery,jquery-ui,jquery-ui-sortable,repeater,jquery.repeater,Jquery,Jquery Ui,Jquery Ui Sortable,Repeater,Jquery.repeater,我正在使用库创建repeateble表单。我想用库对所有可重复的字段进行排序 一切正常,但当我对可重复字段排序时,输入的名称顺序不会重新建立索引。如上所述,可以使用ready事件 这是我的密码: <form class="repeater"> <div class="sortable" data-repeater-list="group-a"> <div class="item

我正在使用库创建repeateble表单。我想用库对所有可重复的字段进行排序

一切正常,但当我对可重复字段排序时,输入的名称顺序不会重新建立索引。如上所述,可以使用
ready
事件

这是我的密码:

<form class="repeater">
    <div class="sortable" data-repeater-list="group-a">
      <div class="item" data-repeater-item>
        <input type="text" name="text-input" value="A"/>
        <input data-repeater-delete type="button" value="Delete"/>
      </div>
      <div class="item" data-repeater-item>
        <input type="text" name="text-input" value="B"/>
        <input data-repeater-delete type="button" value="Delete"/>
      </div>
    </div>
    <input data-repeater-create type="button" value="Add"/>
</form>
现场直播:

我已经解决了这个问题,我一直在等待答案,如下所示:

我调用了
repeater.repeater(“setIndexes”)
中继器在每个可排序的操作。

update:function(){
myRepeater.repeater(“设置索引”);
}
这使它工作正常,但单击
Add按钮
会导致添加多个元素的问题,因此需要对
jquery.repeater.js
的源代码进行更改

jquery.repeater.js
中,我们必须进行以下更改:

之前:

$filterNested($self.find('[data repeater create]')、fig.repeater)。单击(函数(){
addItem();
});
之后:

$filterNested($self.find('[data repeater create]')、图repeater)。单击(函数(事件){
addItem();
事件。stopImmediatePropagation();
});
您可以在找到工作样本


它应该不会损坏任何东西,但我还没有做任何详尽的测试。

谢谢。这是一个很好的解决方案。
$(document).ready(function() {
  const form = $(".repeater");
  const sortable = $(".sortable").sortable({
    update: function() {
      console.log(form.serializeArray());
    }
  });

  $(".repeater").repeater({
    show: function() {
      $(this).slideDown();
    },
    hide: function(deleteElement) {
      if (confirm("Are you sure you want to delete this element?")) {
        $(this).slideUp(deleteElement);
      }
    },
    ready: function(setIndexes) {
      sortable.on("sortchange", setIndexes);
    }
  });
});