JS-Multiselect2Side: Namen der temporären Controls von Original-ID und nicht -Name...
authorMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 4 Jun 2013 10:03:45 +0000 (12:03 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Wed, 5 Jun 2013 08:03:58 +0000 (10:03 +0200)
Der Name ist nicht zwangsläufig eindeutig, vor allem, wenn mehrere
Elemente dieser Art auf einer Seite vorhanden sind. Beispiel:
name="client[].users[]" mehrfach in einer Schleife ausgegeben.

js/jquery.multiselect2side.js

index e47a35f..de74b64 100644 (file)
     return this.each(function () {
       var el = $(this);
 
-      var hiddenName   = $(this).attr("name");
-      var originalName = $(this).attr("name");
-      if (originalName.indexOf('[') != -1)
-        originalName = originalName.substring(0, originalName.indexOf('['));
-
-      var nameDx   = originalName + "ms2side__dx";
-      var idDx     = originalName + "ms2side__dx";
-      var nameSx   = originalName + "ms2side__sx";
-      var hiddenId = originalName + "ms2side_hidden";
+      var hiddenName = $(this).attr("name");
+      var originalID = $(this).attr("id");
+      if (!originalID)
+        originalID = hiddenName;
+      if (originalID.indexOf('[') != -1)
+        originalID = originalID.substring(0, originalID.indexOf('['));
+
+      var nameDx   = originalID + "ms2side__dx";
+      var idDx     = originalID + "ms2side__dx";
+      var nameSx   = originalID + "ms2side__sx";
+      var hiddenId = originalID + "ms2side_hidden";
       var size     = $(this).attr("size");
-      $(this).attr("name", originalName + "ms2side__orig");
+      $(this).attr("name", originalID + "ms2side__orig");
       // SIZE MIN
       if (size < 6) {
         $(this).attr("size", "6");