From 9c7dd8177845ba65f6b75be712b25454667c5c83 Mon Sep 17 00:00:00 2001 From: Karson <karsonzhang@163.com> Date: Thu, 4 May 2017 18:48:04 +0800 Subject: [PATCH] 新增高级搜索自定义搜索列表 --- public/assets/js/bootstrap-table-advancedsearch.js | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/public/assets/js/bootstrap-table-advancedsearch.js b/public/assets/js/bootstrap-table-advancedsearch.js index 9894131..a63258f 100644 --- a/public/assets/js/bootstrap-table-advancedsearch.js +++ b/public/assets/js/bootstrap-table-advancedsearch.js @@ -87,8 +87,24 @@ htmlForm.push(sprintf('<select class="form-control" name="field-%s" data-name="%s">%s</select>', vObjCol.field, vObjCol.field, selectHtml)); htmlForm.push('</div>'); } + htmlForm.push('<div class="col-sm-6">'); - htmlForm.push(sprintf('<input type="text" class="form-control input-md" name="%s" placeholder="%s" id="%s">', vObjCol.field, vObjCol.title, vObjCol.field)); + if (vObjCol.searchList) { + if (typeof vObjCol.searchList == 'function') { + htmlForm.push(vObjCol.searchList.call(this, vObjCol)); + } else { + var isArray = vObjCol.searchList.constructor === Array; + var searchList = []; + searchList.push(sprintf('<option value="">%s</option>', $.fn.bootstrapTable.locales.formatAdvancedChoose())); + $.each(vObjCol.searchList, function (key, value) { + searchList.push("<option value='" + (isArray ? value : key) + "'>" + value + "</option>"); + }); + htmlForm.push(sprintf('<select class="form-control" name="%s">%s</select>', vObjCol.field, searchList.join(''))); + } + } else { + htmlForm.push(sprintf('<input type="text" class="form-control input-md" name="%s" placeholder="%s" id="%s">', vObjCol.field, vObjCol.title, vObjCol.field)); + } + htmlForm.push('</div>'); htmlForm.push('</div>'); } @@ -146,6 +162,9 @@ }, formatAdvancedCloseButton: function () { return "Close"; + }, + formatAdvancedChoose: function () { + return "Choose"; } }); @@ -240,7 +259,10 @@ $("#avdSearchModalContent_" + this.options.idTable + " select").each(function () { var name = $(this).data("name"); var sym = $(this).val(); - var value = $("input[name='" + name + "']").val(); + var obj = $("[name='" + name + "']"); + if (obj.size() == 0) + return true; + var value = obj.size() > 1 ? $("[name='" + name + "']:checked").val() : obj.val(); if (value == '' && sym.indexOf("NULL") == -1) { return true; } -- libgit2 0.24.0