Browse Source

Added `lang` attribute support

Select2 will now detect the language based on the `lang` attribute
of the `<select>` element or any parent elements.
Kevin Brown 10 năm trước cách đây
mục cha
commit
ec1bd3387b

+ 8 - 5
dist/js/select2.amd.full.js

@@ -3300,14 +3300,17 @@ define('select2/options',[
   }
 
   Options.prototype.fromElement = function ($e) {
-    var fromProperties = ['multiple'];
     var excludedData = ['select2'];
 
-    for (var p = 0; p < fromProperties.length; p++) {
-      var prop = fromProperties[p];
+    if (this.options.multiple == null) {
+      this.options.multiple = $e.prop('multiple');
+    }
 
-      if (this.options[prop] == null) {
-        this.options[prop] = $e.prop(prop);
+    if (this.options.language == null) {
+      if ($e.prop('lang')) {
+        this.options.language = $e.prop('lang').toLowerCase();
+      } else if ($e.closest('[lang]').prop('lang')) {
+        this.options.language = $e.closest('[lang]').prop('lang');
       }
     }
 

+ 8 - 5
dist/js/select2.amd.js

@@ -3300,14 +3300,17 @@ define('select2/options',[
   }
 
   Options.prototype.fromElement = function ($e) {
-    var fromProperties = ['multiple'];
     var excludedData = ['select2'];
 
-    for (var p = 0; p < fromProperties.length; p++) {
-      var prop = fromProperties[p];
+    if (this.options.multiple == null) {
+      this.options.multiple = $e.prop('multiple');
+    }
 
-      if (this.options[prop] == null) {
-        this.options[prop] = $e.prop(prop);
+    if (this.options.language == null) {
+      if ($e.prop('lang')) {
+        this.options.language = $e.prop('lang').toLowerCase();
+      } else if ($e.closest('[lang]').prop('lang')) {
+        this.options.language = $e.closest('[lang]').prop('lang');
       }
     }
 

+ 8 - 5
dist/js/select2.full.js

@@ -12835,14 +12835,17 @@ define('select2/options',[
   }
 
   Options.prototype.fromElement = function ($e) {
-    var fromProperties = ['multiple'];
     var excludedData = ['select2'];
 
-    for (var p = 0; p < fromProperties.length; p++) {
-      var prop = fromProperties[p];
+    if (this.options.multiple == null) {
+      this.options.multiple = $e.prop('multiple');
+    }
 
-      if (this.options[prop] == null) {
-        this.options[prop] = $e.prop(prop);
+    if (this.options.language == null) {
+      if ($e.prop('lang')) {
+        this.options.language = $e.prop('lang').toLowerCase();
+      } else if ($e.closest('[lang]').prop('lang')) {
+        this.options.language = $e.closest('[lang]').prop('lang');
       }
     }
 

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/js/select2.full.min.js


+ 8 - 5
dist/js/select2.js

@@ -3728,14 +3728,17 @@ define('select2/options',[
   }
 
   Options.prototype.fromElement = function ($e) {
-    var fromProperties = ['multiple'];
     var excludedData = ['select2'];
 
-    for (var p = 0; p < fromProperties.length; p++) {
-      var prop = fromProperties[p];
+    if (this.options.multiple == null) {
+      this.options.multiple = $e.prop('multiple');
+    }
 
-      if (this.options[prop] == null) {
-        this.options[prop] = $e.prop(prop);
+    if (this.options.language == null) {
+      if ($e.prop('lang')) {
+        this.options.language = $e.prop('lang').toLowerCase();
+      } else if ($e.closest('[lang]').prop('lang')) {
+        this.options.language = $e.closest('[lang]').prop('lang');
       }
     }
 

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/js/select2.min.js


+ 8 - 5
src/js/select2/options.js

@@ -13,14 +13,17 @@ define([
   }
 
   Options.prototype.fromElement = function ($e) {
-    var fromProperties = ['multiple'];
     var excludedData = ['select2'];
 
-    for (var p = 0; p < fromProperties.length; p++) {
-      var prop = fromProperties[p];
+    if (this.options.multiple == null) {
+      this.options.multiple = $e.prop('multiple');
+    }
 
-      if (this.options[prop] == null) {
-        this.options[prop] = $e.prop(prop);
+    if (this.options.language == null) {
+      if ($e.prop('lang')) {
+        this.options.language = $e.prop('lang').toLowerCase();
+      } else if ($e.closest('[lang]').prop('lang')) {
+        this.options.language = $e.closest('[lang]').prop('lang');
       }
     }
 

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác