Sfoglia il codice sorgente

修复复选框、筛选列表为空时不更新的BUG
根据Ajax返回的token修改表单中token的值

Karson 7 anni fa
parent
commit
332e786a83
1 ha cambiato i file con 21 aggiunte e 2 eliminazioni
  1. 21 2
      public/assets/js/require-backend.min.js

+ 21 - 2
public/assets/js/require-backend.min.js

@@ -10898,12 +10898,31 @@ define('form',['jquery', 'bootstrap', 'upload', 'validator'], function ($, undef
                 type = type && (type === 'GET' || type === 'POST') ? type : 'GET';
                 url = form.attr("action");
                 url = url ? url : location.href;
+                //修复当存在多选项元素时提交的BUG
+                var params = {};
+                var multipleList = $("[name$='[]']");
+                if (multipleList.size() > 0) {
+                    var postFields = form.serializeArray().map(function (obj) {
+                        return $(obj).prop("name");
+                    });
+                    $.each(multipleList, function (i, j) {
+                        if (postFields.indexOf($(this).prop("name")) < 0) {
+                            params[$(this).prop("name")] = '';
+                        }
+                    });
+                }
                 //调用Ajax请求方法
                 Fast.api.ajax({
                     type: type,
                     url: url,
-                    data: form.serialize(),
-                    dataType: 'json'
+                    data: form.serialize() + (params ? '&' + $.param(params) : ''),
+                    dataType: 'json',
+                    complete: function (xhr) {
+                        var token = xhr.getResponseHeader('__token__');
+                        if (token) {
+                            $("input[name='__token__']", form).val(token);
+                        }
+                    }
                 }, function (data, ret) {
                     $('.form-group', form).removeClass('has-feedback has-success has-error');
                     if (data && typeof data === 'object' && typeof data.token !== 'undefined') {