Browse Source

Fixed stack overflow error of checkBy method (#4528)

文翼 6 years ago
parent
commit
126577b8b5
1 changed files with 10 additions and 2 deletions
  1. 10 2
      src/bootstrap-table.js

+ 10 - 2
src/bootstrap-table.js

@@ -2484,8 +2484,16 @@ class BootstrapTable {
         return false
         return false
       }
       }
       if (obj.values.includes(row[obj.field])) {
       if (obj.values.includes(row[obj.field])) {
-        const $el = this.$selectItem.filter(':enabled')
-          .filter(Utils.sprintf('[data-index="%s"]', i)).prop('checked', checked)
+        let $el = this.$selectItem.filter(':enabled')
+          .filter(Utils.sprintf('[data-index="%s"]', i))
+
+        $el = checked ? $el.not(':checked') : $el.filter(':checked')
+
+        if (!$el.length) {
+          return
+        }
+
+        $el.prop('checked', checked)
         row[this.header.stateField] = checked
         row[this.header.stateField] = checked
         rows.push(row)
         rows.push(row)
         this.trigger(checked ? 'check' : 'uncheck', row, $el)
         this.trigger(checked ? 'check' : 'uncheck', row, $el)