| /** | 
|  * @author: Dennis Hernández | 
|  * @webSite: http://djhvscf.github.io/Blog | 
|  * @version: v1.0.0 | 
|  */ | 
|   | 
| !function ($) { | 
|   | 
|     'use strict'; | 
|   | 
|     $.extend($.fn.bootstrapTable.defaults, { | 
|         multipleSearch: false | 
|     }); | 
|   | 
|     var BootstrapTable = $.fn.bootstrapTable.Constructor, | 
|         _initSearch = BootstrapTable.prototype.initSearch; | 
|   | 
|     BootstrapTable.prototype.initSearch = function () { | 
|         if (this.options.multipleSearch) { | 
|             var strArray = this.searchText.split(" "), | 
|                 that = this, | 
|                 f = $.isEmptyObject(this.filterColumns) ? null : this.filterColumns, | 
|                 dataFiltered = []; | 
|   | 
|             if (strArray.length === 1) { | 
|                 _initSearch.apply(this, Array.prototype.slice.apply(arguments)); | 
|             } else { | 
|                 for (var i = 0; i < strArray.length; i++) { | 
|                     var str = strArray[i].trim(); | 
|                     dataFiltered = str ? $.grep(dataFiltered.length === 0 ? this.options.data : dataFiltered, function (item, i) { | 
|                         for (var key in item) { | 
|                             key = $.isNumeric(key) ? parseInt(key, 10) : key; | 
|                             var value = item[key], | 
|                                 column = that.columns[$.fn.bootstrapTable.utils.getFieldIndex(that.columns, key)], | 
|                                 j = $.inArray(key, that.header.fields); | 
|   | 
|                             // Fix #142: search use formated data | 
|                             if (column && column.searchFormatter) { | 
|                                 value = $.fn.bootstrapTable.utils.calculateObjectValue(column, | 
|                                     that.header.formatters[j], [value, item, i], value); | 
|                             } | 
|   | 
|                             var index = $.inArray(key, that.header.fields); | 
|                             if (index !== -1 && that.header.searchables[index] && (typeof value === 'string' || typeof value === 'number')) { | 
|                                 if (that.options.strictSearch) { | 
|                                     if ((value + '').toLowerCase() === str) { | 
|                                         return true; | 
|                                     } | 
|                                 } else { | 
|                                     if ((value + '').toLowerCase().indexOf(str) !== -1) { | 
|                                         return true; | 
|                                     } | 
|                                 } | 
|                             } | 
|                         } | 
|                         return false; | 
|                     }) : this.data; | 
|                 } | 
|   | 
|                 this.data = dataFiltered; | 
|             } | 
|         } else { | 
|             _initSearch.apply(this, Array.prototype.slice.apply(arguments)); | 
|         } | 
|     }; | 
|   | 
| }(jQuery); |