From f1f208db64f339035eaa4886587dfd9e7f6ba28c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=80=A1=E6=A0=8B?= Date: Fri, 11 Mar 2022 14:06:04 +0800 Subject: [PATCH] * fix bug #20669. --- module/user/control.php | 1 - module/user/js/batchcreate.js | 23 +++++++++++------------ 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/module/user/control.php b/module/user/control.php index 772c6c91bc..af9a4e1fb3 100644 --- a/module/user/control.php +++ b/module/user/control.php @@ -1302,7 +1302,6 @@ class user extends control if($i) { if($i > 1) $groupList = $groupList + array('ditto' => $this->lang->user->ditto); - if(empty($selected)) $selected = $i > 1 ? 'ditto' : ''; return print(html::select("group[$i][]", $groupList, $selected, 'size=3 multiple=multiple class="form-control chosen"')); } return print(html::select('group[]', $groupList, $selected, 'size=3 multiple=multiple class="form-control chosen"')); diff --git a/module/user/js/batchcreate.js b/module/user/js/batchcreate.js index d60b4a0f5c..48ab262c4a 100644 --- a/module/user/js/batchcreate.js +++ b/module/user/js/batchcreate.js @@ -75,7 +75,7 @@ $(document).on('click', '.chosen-with-drop', function() $(document).on('change', '[id^=visions]', function() { - if($.inArray('ditto', $(this).val()) > 0) + if($.inArray('ditto', $(this).val()) >= 0) { $(this).val('ditto'); $(this).trigger("chosen:updated"); @@ -95,30 +95,29 @@ $('select[id^="visions"]').each(function() }) }) -$("select[id^='visions']").change(function() +$(document).on('change', "select[id^='visions']", function() { - var i = $(this).attr('id').replace(/[^0-9]/ig, ''); - var visions = []; + var i = parseInt($(this).attr('id').replace(/[^0-9]/ig, '')); + var visions = $('select[id="visions' + i + '"]').val(); - $('select[id="visions' + i + '"] option:selected').each(function() - { - visions.push($(this).val()); - }); + var groups = $('#group' + i).val(); + if($.inArray('ditto', groups) >= 0) groups = ''; - $.post(createLink('user', 'ajaxGetGroup', "visions=" + visions + '&i=' + i + '&selected=' + $('#group' + i).val()), function(data) + $.post(createLink('user', 'ajaxGetGroup', "visions=" + visions + '&i=' + i + '&selected=' + groups), function(data) { $('#group' + i).replaceWith(data); $('#group' + i + '_chosen').remove(); $('#group' + i).chosen(); }) - for(n = i; n <= batchCreateCount; n++) + for(n = i + 1; n <= batchCreateCount; n++) { - if($('select[id="visions' + n + '"] option:selected').val() != 'ditto' && n != i) break; + if(n == i) continue; + if($.inArray('ditto', $('select[id="visions' + n + '"]').val()) < 0) break; ((function(n) { - $.post(createLink('user', 'ajaxGetGroup', "visions=" + visions + '&i=' + n + '&selected=' + $('#group' + i).val()), function(data) + $.post(createLink('user', 'ajaxGetGroup', "visions=" + visions + '&i=' + n + '&selected=' + $('#group' + n).val()), function(data) { $('#group' + n).replaceWith(data); $('#group' + n + '_chosen').remove();