Chosen: Unterstützung von Zeichen mit Akzenten

Erstellt am 21. März 2012  ·  51Kommentare  ·  Quelle: harvesthq/chosen

wenn Sie ein Element in der Dropdown-Liste namens "testé" haben
Es wäre schön, "teste" eingeben zu können, um es zu finden.
im Moment findet es es nicht wegen des ´ über dem e
Vielleicht könnte der gewählte zuerst all diese Akzente entfernen?

Feature Request Search

Hilfreichster Kommentar

sry @tjschuck für doppelten Beitrag

Ich habe das gleiche Problem gefunden und entwickle meine Lösung http://fiddle.jshell.net/whqb5/1/

ein Element 'Demokratische Republik Kongo' wird mit der Suche 'Kongorepublik' in beliebiger Reihenfolge in meiner Methode ausgewählt, Datei in UTF-8 für Sonderzeichenfolgen speichern "(Á|À|Ã|Â|Ä|á|à|ã |â|ä|a|A)".

sry für mein schlechtes englisch,

"Ich bin bei der Entwicklung meiner Lösung auf das gleiche Problem gestoßen http://fiddle.jshell.net/whqb5/1/

Die Suche verwendet alle eingegebenen Wörter in beliebiger Reihenfolge mit oder ohne Akzent."

*neue Version bearbeiten

    AbstractChosen.prototype.stringEscaped = function (str) {

        var specialChars = [
            { val: "a", let: "(Á|À|Ã|Â|Ä|á|à|ã|â|ä|a|A)" },
            { val: "e", let: "(É|È|Ê|Ë|é|è|ê|ë|e|E)" },
            { val: "i", let: "(Í|Ì|Î|Ï|í|ì|î|ï|i|I)" },
            { val: "o", let: "(Ó|Ò|Õ|Ô|Ö|ó|ò|õ|ô|ö|o|O)" },
            { val: "u", let: "(Ú|Ù|Û|Ü|ú|ù|û|ü|u|U)" },
            { val: "c", let: "(Ç|ç|c|C)" }];
        for (var i = 0; i < specialChars.length; i++) {
            str = str.replace(new RegExp(specialChars[i].let, "g"), specialChars[i].val);
            str = str.replace(new RegExp(specialChars[i].val, "g"), specialChars[i].let);
        }
        return str;
    }


    AbstractChosen.prototype.winnow_results = function () {
        var escapedSearchText, option, regex, regexAnchor, results, results_group, searchText, startpos, text, zregex, _i, _len, _ref, search_split, found;

        this.no_results_clear();
        results = 0;
        searchText = this.get_search_text();
        escapedSearchText = searchText;
        _ref = this.results_data;
        search_split = searchText.split(' ');
        regex = searchText.split(' '); 
        for (_s = 0, _lens = search_split.length; _s < _lens; _s++) {
            regex[_s] = new RegExp(this.stringEscaped(search_split[_s]), "i");
        }

        for (_i = 0, _len = _ref.length; _i < _len; _i++) {
            option = _ref[_i];
            option.search_match = false;
            results_group = null;
            if (this.include_option_in_results(option)) {
                if (option.group) {
                    option.group_match = false;
                    option.active_options = 0;
                }
                if ((option.group_array_index != null) && this.results_data[option.group_array_index]) {
                    results_group = this.results_data[option.group_array_index];
                    if (results_group.active_options === 0 && results_group.search_match) {
                        results += 1;
                    }
                    results_group.active_options += 1;
                }
                if (!(option.group && !this.group_search)) {
                    option.search_text = option.group ? option.label : option.html;
                    found = 0;
                    for (_s = 0, _lens = regex.length; _s < _lens; _s++) {
                        option.search_match = this.search_string_match(option.search_text, regex[_s]);
                        if (option.search_match && !option.group) {
                            found += 1;
                        }
                        if (found == _lens)
                            results += 1;
                        else
                            option.search_match = null;

                    }
                    if (option.search_match) {
                        if (searchText.length) {
                            for (_s = 0, _lens = search_split.length; _s < _lens; _s++) {
                                startpos = option.search_text.search(regex[_s]);
                                text = option.search_text.substr(0, startpos + search_split[_s].length) + '</em>' + option.search_text.substr(startpos + search_split[_s].length);
                                option.search_text = text.substr(0, startpos) + '<em>' + text.substr(startpos);
                            }
                        }
                        if (results_group != null) {
                            results_group.group_match = true;
                        }
                    } else if ((option.group_array_index != null) && this.results_data[option.group_array_index].search_match) {
                        option.search_match = true;
                    }
                }
            }
        }
        this.result_clear_highlight();
        if (results < 1 && searchText.length) {
            this.update_results_content("");
            return this.no_results(searchText);
        } else {
            this.update_results_content(this.results_option_build());
            return this.winnow_results_set_highlight();
        }
    };

    AbstractChosen.prototype.search_string_match = function (search_string, regex) {
        var part, parts, _i, _len;
        if (regex.test(search_string)) {
            return true;
        } else if (this.enable_split_word_search && (search_string.indexOf(" ") >= 0 || search_string.indexOf("[") === 0)) {
            parts = search_string.replace(/\[|\]/g, "").split(" ");
            if (parts.length) {
                for (_i = 0, _len = parts.length; _i < _len; _i++) {
                    part = parts[_i];
                    if (regex.test(part)) {
                        return true;
                    }
                }
            }
            return false;
        }
    };

Alle 51 Kommentare

Ich stimme Gemal zu.

Ich habe bereits eine Funktion dafür gefunden, wenn ich nur die Suche des ausgewählten Benutzers an eine benutzerdefinierte Funktion anhängen könnte (wie z. B. jstree: http://www.jstree.com/documentation/search).

Diese Funktion entfernt alle diakritischen Zeichen aus einer Zeichenfolge und ersetzt sie durch ihr normalisiertes Äquivalent.
Hier ist der Code: http://lehelk.com/2011/05/06/script-to-remove-diacritics/

Die Funktion, die dies tut, ist Chosen.prototype.winnow_results. Es ist ein bisschen schwierig, mit den regulären Ausdrücken zu ringen :/

Dies kann nützlich sein und mit diesem Problem zusammenhängen: https://github.com/harvesthq/chosen/pull/628

+1

+1

Ich habe die Methode Chosen.prototype.winnow_results geändert, um die Akzente der Suchzeichenfolge vor der Suche zu bereinigen, nicht mein bester Code, aber er funktioniert wie erwartet:

Chosen.prototype.winnow_results = function() {
      var found, option, part, parts, regex, regexAnchor, result, result_id, results, searchText, startpos, text, zregex, _i, _j, _len, _len1, _ref;
      this.no_results_clear();
      results = 0;

      var defaultDiacriticsRemovalMap = [
          {'base':'A', 'letters':/[\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F]/g},
          {'base':'AA','letters':/[\uA732]/g},
          {'base':'AE','letters':/[\u00C6\u01FC\u01E2]/g},
          {'base':'AO','letters':/[\uA734]/g},
          {'base':'AU','letters':/[\uA736]/g},
          {'base':'AV','letters':/[\uA738\uA73A]/g},
          {'base':'AY','letters':/[\uA73C]/g},
          {'base':'B', 'letters':/[\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181]/g},
          {'base':'C', 'letters':/[\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E]/g},
          {'base':'D', 'letters':/[\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779]/g},
          {'base':'DZ','letters':/[\u01F1\u01C4]/g},
          {'base':'Dz','letters':/[\u01F2\u01C5]/g},
          {'base':'E', 'letters':/[\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E]/g},
          {'base':'F', 'letters':/[\u0046\u24BB\uFF26\u1E1E\u0191\uA77B]/g},
          {'base':'G', 'letters':/[\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E]/g},
          {'base':'H', 'letters':/[\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D]/g},
          {'base':'I', 'letters':/[\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197]/g},
          {'base':'J', 'letters':/[\u004A\u24BF\uFF2A\u0134\u0248]/g},
          {'base':'K', 'letters':/[\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2]/g},
          {'base':'L', 'letters':/[\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780]/g},
          {'base':'LJ','letters':/[\u01C7]/g},
          {'base':'Lj','letters':/[\u01C8]/g},
          {'base':'M', 'letters':/[\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C]/g},
          {'base':'N', 'letters':/[\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4]/g},
          {'base':'NJ','letters':/[\u01CA]/g},
          {'base':'Nj','letters':/[\u01CB]/g},
          {'base':'O', 'letters':/[\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C]/g},
          {'base':'OI','letters':/[\u01A2]/g},
          {'base':'OO','letters':/[\uA74E]/g},
          {'base':'OU','letters':/[\u0222]/g},
          {'base':'P', 'letters':/[\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754]/g},
          {'base':'Q', 'letters':/[\u0051\u24C6\uFF31\uA756\uA758\u024A]/g},
          {'base':'R', 'letters':/[\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782]/g},
          {'base':'S', 'letters':/[\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784]/g},
          {'base':'T', 'letters':/[\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786]/g},
          {'base':'TZ','letters':/[\uA728]/g},
          {'base':'U', 'letters':/[\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244]/g},
          {'base':'V', 'letters':/[\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245]/g},
          {'base':'VY','letters':/[\uA760]/g},
          {'base':'W', 'letters':/[\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72]/g},
          {'base':'X', 'letters':/[\u0058\u24CD\uFF38\u1E8A\u1E8C]/g},
          {'base':'Y', 'letters':/[\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE]/g},
          {'base':'Z', 'letters':/[\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762]/g},
          {'base':'a', 'letters':/[\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250]/g},
          {'base':'aa','letters':/[\uA733]/g},
          {'base':'ae','letters':/[\u00E6\u01FD\u01E3]/g},
          {'base':'ao','letters':/[\uA735]/g},
          {'base':'au','letters':/[\uA737]/g},
          {'base':'av','letters':/[\uA739\uA73B]/g},
          {'base':'ay','letters':/[\uA73D]/g},
          {'base':'b', 'letters':/[\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253]/g},
          {'base':'c', 'letters':/[\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184]/g},
          {'base':'d', 'letters':/[\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A]/g},
          {'base':'dz','letters':/[\u01F3\u01C6]/g},
          {'base':'e', 'letters':/[\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD]/g},
          {'base':'f', 'letters':/[\u0066\u24D5\uFF46\u1E1F\u0192\uA77C]/g},
          {'base':'g', 'letters':/[\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F]/g},
          {'base':'h', 'letters':/[\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265]/g},
          {'base':'hv','letters':/[\u0195]/g},
          {'base':'i', 'letters':/[\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131]/g},
          {'base':'j', 'letters':/[\u006A\u24D9\uFF4A\u0135\u01F0\u0249]/g},
          {'base':'k', 'letters':/[\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3]/g},
          {'base':'l', 'letters':/[\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747]/g},
          {'base':'lj','letters':/[\u01C9]/g},
          {'base':'m', 'letters':/[\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F]/g},
          {'base':'n', 'letters':/[\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5]/g},
          {'base':'nj','letters':/[\u01CC]/g},
          {'base':'o', 'letters':/[\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275]/g},
          {'base':'oi','letters':/[\u01A3]/g},
          {'base':'ou','letters':/[\u0223]/g},
          {'base':'oo','letters':/[\uA74F]/g},
          {'base':'p','letters':/[\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755]/g},
          {'base':'q','letters':/[\u0071\u24E0\uFF51\u024B\uA757\uA759]/g},
          {'base':'r','letters':/[\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783]/g},
          {'base':'s','letters':/[\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B]/g},
          {'base':'t','letters':/[\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787]/g},
          {'base':'tz','letters':/[\uA729]/g},
          {'base':'u','letters':/[\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289]/g},
          {'base':'v','letters':/[\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C]/g},
          {'base':'vy','letters':/[\uA761]/g},
          {'base':'w','letters':/[\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73]/g},
          {'base':'x','letters':/[\u0078\u24E7\uFF58\u1E8B\u1E8D]/g},
          {'base':'y','letters':/[\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF]/g},
          {'base':'z','letters':/[\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763]/g}
      ];
      var changes;
      function removeDiacritics (str) {
          if(!changes) {
              changes = defaultDiacriticsRemovalMap;
          }
          for(var i=0; i<changes.length; i++) {
              str = str.replace(changes[i].letters, changes[i].base);
          }
          return str;
      }

      searchText = this.search_field.val() === this.default_text ? "" : $('<div/>').text(removeDiacritics($.trim(this.search_field.val()))).html();
      regexAnchor = this.search_contains ? "" : "^";
      regex = new RegExp(regexAnchor + searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i');
      zregex = new RegExp(searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i');
      _ref = this.results_data;
      for (_i = 0, _len = _ref.length; _i < _len; _i++) {
        option = _ref[_i];
        if (!option.disabled && !option.empty) {
          if (option.group) {
            $('#' + option.dom_id).css('display', 'none');
          } else if (!(this.is_multiple && option.selected)) {
            found = false;
            result_id = option.dom_id;
            result = $("#" + result_id);
            if (regex.test(removeDiacritics(option.html))) {
              found = true;
              results += 1;
            } else if (this.enable_split_word_search && (option.html.indexOf(" ") >= 0 || option.html.indexOf("[") === 0)) {
              parts = removeDiacritics(option.html).replace(/\[|\]/g, "").split(" ");
              if (parts.length) {
                for (_j = 0, _len1 = parts.length; _j < _len1; _j++) {
                  part = parts[_j];
                  if (regex.test(part)) {
                    found = true;
                    results += 1;
                  }
                }
              }
            }
            if (found) {
              if (searchText.length) {
                startpos = removeDiacritics(option.html).search(zregex);
                text = option.html.substr(0, startpos + searchText.length) + '</em>' + option.html.substr(startpos + searchText.length);
                text = text.substr(0, startpos) + '<em>' + text.substr(startpos);
              } else {
                text = option.html;
              }
              result.html(text);
              this.result_activate(result);
              if (option.group_array_index != null) {
                $("#" + this.results_data[option.group_array_index].dom_id).css('display', 'list-item');
              }
            } else {
              if (this.result_highlight && result_id === this.result_highlight.attr('id')) {
                this.result_clear_highlight();
              }
              this.result_deactivate(result);
            }
          }
        }
      }
      if (results < 1 && searchText.length) {
        return this.no_results(searchText);
      } else {
        return this.winnow_results_set_highlight();
      }
    };

Gebrauchsfertig:

(function(){var e;e=function(){function e(){this.options_index=0;this.parsed=[]}e.prototype.add_node=function(e){if(e.nodeName.toUpperCase()==="OPTGROUP"){return this.add_group(e)}else{return this.add_option(e)}};e.prototype.add_group=function(e){var t,n,r,i,s,o;t=this.parsed.length;this.parsed.push({array_index:t,group:true,label:e.label,children:0,disabled:e.disabled});s=e.childNodes;o=[];for(r=0,i=s.length;r<i;r++){n=s[r];o.push(this.add_option(n,t,e.disabled))}return o};e.prototype.add_option=function(e,t,n){if(e.nodeName.toUpperCase()==="OPTION"){if(e.text!==""){if(t!=null){this.parsed[t].children+=1}this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:e.value,text:e.text,html:e.innerHTML,selected:e.selected,disabled:n===true?n:e.disabled,group_array_index:t,classes:e.className,style:e.style.cssText})}else{this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:true})}return this.options_index+=1}};return e}();e.select_to_array=function(t){var n,r,i,s,o;r=new e;o=t.childNodes;for(i=0,s=o.length;i<s;i++){n=o[i];r.add_node(n)}return r.parsed};this.SelectParser=e}).call(this);(function(){var e,t;t=this;e=function(){function e(e,t){this.form_field=e;this.options=t!=null?t:{};this.is_multiple=this.form_field.multiple;this.set_default_text();this.set_default_values();this.setup();this.set_up_html();this.register_observers();this.finish_setup()}e.prototype.set_default_values=function(){var e=this;this.click_test_action=function(t){return e.test_active_click(t)};this.activate_action=function(t){return e.activate_field(t)};this.active_field=false;this.mouse_on_container=false;this.results_showing=false;this.result_highlighted=null;this.result_single_selected=null;this.allow_single_deselect=this.options.allow_single_deselect!=null&&this.form_field.options[0]!=null&&this.form_field.options[0].text===""?this.options.allow_single_deselect:false;this.disable_search_threshold=this.options.disable_search_threshold||0;this.disable_search=this.options.disable_search||false;this.enable_split_word_search=this.options.enable_split_word_search!=null?this.options.enable_split_word_search:true;this.search_contains=this.options.search_contains||false;this.choices=0;this.single_backstroke_delete=this.options.single_backstroke_delete||false;this.max_selected_options=this.options.max_selected_options||Infinity;return this.inherit_select_classes=this.options.inherit_select_classes||false};e.prototype.set_default_text=function(){if(this.form_field.getAttribute("data-placeholder")){this.default_text=this.form_field.getAttribute("data-placeholder")}else if(this.is_multiple){this.default_text=this.options.placeholder_text_multiple||this.options.placeholder_text||"Select Some Options"}else{this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||"Select an Option"}return this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||"No results match"};e.prototype.mouse_enter=function(){return this.mouse_on_container=true};e.prototype.mouse_leave=function(){return this.mouse_on_container=false};e.prototype.input_focus=function(e){var t=this;if(this.is_multiple){if(!this.active_field){return setTimeout(function(){return t.container_mousedown()},50)}}else{if(!this.active_field){return this.activate_field()}}};e.prototype.input_blur=function(e){var t=this;if(!this.mouse_on_container){this.active_field=false;return setTimeout(function(){return t.blur_test()},100)}};e.prototype.result_add_option=function(e){var t,n;if(!e.disabled){e.dom_id=this.container_id+"_o_"+e.array_index;t=e.selected&&this.is_multiple?[]:["active-result"];if(e.selected){t.push("result-selected")}if(e.group_array_index!=null){t.push("group-option")}if(e.classes!==""){t.push(e.classes)}n=e.style.cssText!==""?' style="'+e.style+'"':"";return'<li id="'+e.dom_id+'" class="'+t.join(" ")+'"'+n+">"+e.html+"</li>"}else{return""}};e.prototype.results_update_field=function(){if(!this.is_multiple){this.results_reset_cleanup()}this.result_clear_highlight();this.result_single_selected=null;return this.results_build()};e.prototype.results_toggle=function(){if(this.results_showing){return this.results_hide()}else{return this.results_show()}};e.prototype.results_search=function(e){if(this.results_showing){return this.winnow_results()}else{return this.results_show()}};e.prototype.keyup_checker=function(e){var t,n;t=(n=e.which)!=null?n:e.keyCode;this.search_field_scale();switch(t){case 8:if(this.is_multiple&&this.backstroke_length<1&&this.choices>0){return this.keydown_backstroke()}else if(!this.pending_backstroke){this.result_clear_highlight();return this.results_search()}break;case 13:e.preventDefault();if(this.results_showing){return this.result_select(e)}break;case 27:if(this.results_showing){this.results_hide()}return true;case 9:case 38:case 40:case 16:case 91:case 17:break;default:return this.results_search()}};e.prototype.generate_field_id=function(){var e;e=this.generate_random_id();this.form_field.id=e;return e};e.prototype.generate_random_char=function(){var e,t,n;e="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";n=Math.floor(Math.random()*e.length);return t=e.substring(n,n+1)};return e}();t.AbstractChosen=e}).call(this);(function(){var e,t,n,r,i={}.hasOwnProperty,s=function(e,t){function r(){this.constructor=e}for(var n in t){if(i.call(t,n))e[n]=t[n]}r.prototype=t.prototype;e.prototype=new r;e.__super__=t.prototype;return e};r=this;e=jQuery;e.fn.extend({chosen:function(n){var r,i,s;s=navigator.userAgent.toLowerCase();i=/(msie) ([\w.]+)/.exec(s)||[];r={name:i[1]||"",version:i[2]||"0"};if(r.name==="msie"&&(r.version==="6.0"||r.version==="7.0"&&document.documentMode===7)){return this}return this.each(function(r){var i;i=e(this);if(!i.hasClass("chzn-done")){return i.data("chosen",new t(this,n))}})}});t=function(t){function i(){return i.__super__.constructor.apply(this,arguments)}s(i,t);i.prototype.setup=function(){this.form_field_jq=e(this.form_field);this.current_value=this.form_field_jq.val();return this.is_rtl=this.form_field_jq.hasClass("chzn-rtl")};i.prototype.finish_setup=function(){return this.form_field_jq.addClass("chzn-done")};i.prototype.set_up_html=function(){var t,r,i,s,o,u;this.container_id=this.form_field.id.length?this.form_field.id.replace(/[^\w]/g,"_"):this.generate_field_id();this.container_id+="_chzn";t=["chzn-container"];t.push("chzn-container-"+(this.is_multiple?"multi":"single"));if(this.inherit_select_classes&&this.form_field.className){t.push(this.form_field.className)}if(this.is_rtl){t.push("chzn-rtl")}this.f_width=this.form_field_jq.outerWidth();i={id:this.container_id,"class":t.join(" "),style:"width: "+this.f_width+"px;",title:this.form_field.title};r=e("<div />",i);if(this.is_multiple){r.html('<ul class="chzn-choices"><li class="search-field"><input type="text" value="'+this.default_text+'" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chzn-drop" style="left:-9000px;"><ul class="chzn-results"></ul></div>')}else{r.html('<a href="javascript:void(0)" class="chzn-single chzn-default" tabindex="-1"><span>'+this.default_text+'</span><div><b></b></div></a><div class="chzn-drop" style="left:-9000px;"><div class="chzn-search"><input type="text" autocomplete="off" /></div><ul class="chzn-results"></ul></div>')}this.form_field_jq.hide().after(r);this.container=e("#"+this.container_id);this.dropdown=this.container.find("div.chzn-drop").first();s=this.container.height();o=this.f_width-n(this.dropdown);this.dropdown.css({width:o+"px",top:s+"px"});this.search_field=this.container.find("input").first();this.search_results=this.container.find("ul.chzn-results").first();this.search_field_scale();this.search_no_results=this.container.find("li.no-results").first();if(this.is_multiple){this.search_choices=this.container.find("ul.chzn-choices").first();this.search_container=this.container.find("li.search-field").first()}else{this.search_container=this.container.find("div.chzn-search").first();this.selected_item=this.container.find(".chzn-single").first();u=o-n(this.search_container)-n(this.search_field);this.search_field.css({width:u+"px"})}this.results_build();this.set_tab_index();return this.form_field_jq.trigger("liszt:ready",{chosen:this})};i.prototype.register_observers=function(){var e=this;this.container.mousedown(function(t){return e.container_mousedown(t)});this.container.mouseup(function(t){return e.container_mouseup(t)});this.container.mouseenter(function(t){return e.mouse_enter(t)});this.container.mouseleave(function(t){return e.mouse_leave(t)});this.search_results.mouseup(function(t){return e.search_results_mouseup(t)});this.search_results.mouseover(function(t){return e.search_results_mouseover(t)});this.search_results.mouseout(function(t){return e.search_results_mouseout(t)});this.form_field_jq.bind("liszt:updated",function(t){return e.results_update_field(t)});this.form_field_jq.bind("liszt:activate",function(t){return e.activate_field(t)});this.form_field_jq.bind("liszt:open",function(t){return e.container_mousedown(t)});this.search_field.blur(function(t){return e.input_blur(t)});this.search_field.keyup(function(t){return e.keyup_checker(t)});this.search_field.keydown(function(t){return e.keydown_checker(t)});this.search_field.focus(function(t){return e.input_focus(t)});if(this.is_multiple){return this.search_choices.click(function(t){return e.choices_click(t)})}else{return this.container.click(function(e){return e.preventDefault()})}};i.prototype.search_field_disabled=function(){this.is_disabled=this.form_field_jq[0].disabled;if(this.is_disabled){this.container.addClass("chzn-disabled");this.search_field[0].disabled=true;if(!this.is_multiple){this.selected_item.unbind("focus",this.activate_action)}return this.close_field()}else{this.container.removeClass("chzn-disabled");this.search_field[0].disabled=false;if(!this.is_multiple){return this.selected_item.bind("focus",this.activate_action)}}};i.prototype.container_mousedown=function(t){var n;if(!this.is_disabled){n=t!=null?e(t.target).hasClass("search-choice-close"):false;if(t&&t.type==="mousedown"&&!this.results_showing){t.preventDefault()}if(!this.pending_destroy_click&&!n){if(!this.active_field){if(this.is_multiple){this.search_field.val("")}e(document).click(this.click_test_action);this.results_show()}else if(!this.is_multiple&&t&&(e(t.target)[0]===this.selected_item[0]||e(t.target).parents("a.chzn-single").length)){t.preventDefault();this.results_toggle()}return this.activate_field()}else{return this.pending_destroy_click=false}}};i.prototype.container_mouseup=function(e){if(e.target.nodeName==="ABBR"&&!this.is_disabled){return this.results_reset(e)}};i.prototype.blur_test=function(e){if(!this.active_field&&this.container.hasClass("chzn-container-active")){return this.close_field()}};i.prototype.close_field=function(){e(document).unbind("click",this.click_test_action);this.active_field=false;this.results_hide();this.container.removeClass("chzn-container-active");this.winnow_results_clear();this.clear_backstroke();this.show_search_field_default();return this.search_field_scale()};i.prototype.activate_field=function(){this.container.addClass("chzn-container-active");this.active_field=true;this.search_field.val(this.search_field.val());return this.search_field.focus()};i.prototype.test_active_click=function(t){if(e(t.target).parents("#"+this.container_id).length){return this.active_field=true}else{return this.close_field()}};i.prototype.results_build=function(){var e,t,n,i,s;this.parsing=true;this.results_data=r.SelectParser.select_to_array(this.form_field);if(this.is_multiple&&this.choices>0){this.search_choices.find("li.search-choice").remove();this.choices=0}else if(!this.is_multiple){this.selected_item.addClass("chzn-default").find("span").text(this.default_text);if(this.disable_search||this.form_field.options.length<=this.disable_search_threshold){this.container.addClass("chzn-container-single-nosearch")}else{this.container.removeClass("chzn-container-single-nosearch")}}e="";s=this.results_data;for(n=0,i=s.length;n<i;n++){t=s[n];if(t.group){e+=this.result_add_group(t)}else if(!t.empty){e+=this.result_add_option(t);if(t.selected&&this.is_multiple){this.choice_build(t)}else if(t.selected&&!this.is_multiple){this.selected_item.removeClass("chzn-default").find("span").text(t.text);if(this.allow_single_deselect){this.single_deselect_control_build()}}}}this.search_field_disabled();this.show_search_field_default();this.search_field_scale();this.search_results.html(e);return this.parsing=false};i.prototype.result_add_group=function(t){if(!t.disabled){t.dom_id=this.container_id+"_g_"+t.array_index;return'<li id="'+t.dom_id+'" class="group-result">'+e("<div />").text(t.label).html()+"</li>"}else{return""}};i.prototype.result_do_highlight=function(e){var t,n,r,i,s;if(e.length){this.result_clear_highlight();this.result_highlight=e;this.result_highlight.addClass("highlighted");r=parseInt(this.search_results.css("maxHeight"),10);s=this.search_results.scrollTop();i=r+s;n=this.result_highlight.position().top+this.search_results.scrollTop();t=n+this.result_highlight.outerHeight();if(t>=i){return this.search_results.scrollTop(t-r>0?t-r:0)}else if(n<s){return this.search_results.scrollTop(n)}}};i.prototype.result_clear_highlight=function(){if(this.result_highlight){this.result_highlight.removeClass("highlighted")}return this.result_highlight=null};i.prototype.results_show=function(){var e;if(!this.is_multiple){this.selected_item.addClass("chzn-single-with-drop");if(this.result_single_selected){this.result_do_highlight(this.result_single_selected)}}else if(this.max_selected_options<=this.choices){this.form_field_jq.trigger("liszt:maxselected",{chosen:this});return false}e=this.is_multiple?this.container.height():this.container.height()-1;this.form_field_jq.trigger("liszt:showing_dropdown",{chosen:this});this.dropdown.css({top:e+"px",left:0});this.results_showing=true;this.search_field.focus();this.search_field.val(this.search_field.val());return this.winnow_results()};i.prototype.results_hide=function(){if(!this.is_multiple){this.selected_item.removeClass("chzn-single-with-drop")}this.result_clear_highlight();this.form_field_jq.trigger("liszt:hiding_dropdown",{chosen:this});this.dropdown.css({left:"-9000px"});return this.results_showing=false};i.prototype.set_tab_index=function(e){var t;if(this.form_field_jq.attr("tabindex")){t=this.form_field_jq.attr("tabindex");this.form_field_jq.attr("tabindex",-1);return this.search_field.attr("tabindex",t)}};i.prototype.show_search_field_default=function(){if(this.is_multiple&&this.choices<1&&!this.active_field){this.search_field.val(this.default_text);return this.search_field.addClass("default")}else{this.search_field.val("");return this.search_field.removeClass("default")}};i.prototype.search_results_mouseup=function(t){var n;n=e(t.target).hasClass("active-result")?e(t.target):e(t.target).parents(".active-result").first();if(n.length){this.result_highlight=n;this.result_select(t);return this.search_field.focus()}};i.prototype.search_results_mouseover=function(t){var n;n=e(t.target).hasClass("active-result")?e(t.target):e(t.target).parents(".active-result").first();if(n){return this.result_do_highlight(n)}};i.prototype.search_results_mouseout=function(t){if(e(t.target).hasClass("active-result"||e(t.target).parents(".active-result").first())){return this.result_clear_highlight()}};i.prototype.choices_click=function(t){t.preventDefault();if(this.active_field&&!e(t.target).hasClass("search-choice"||e(t.target).parents(".search-choice").first)&&!this.results_showing){return this.results_show()}};i.prototype.choice_build=function(t){var n,r,i,s=this;if(this.is_multiple&&this.max_selected_options<=this.choices){this.form_field_jq.trigger("liszt:maxselected",{chosen:this});return false}n=this.container_id+"_c_"+t.array_index;this.choices+=1;if(t.disabled){r='<li class="search-choice search-choice-disabled" id="'+n+'"><span>'+t.html+"</span></li>"}else{r='<li class="search-choice" id="'+n+'"><span>'+t.html+'</span><a href="javascript:void(0)" class="search-choice-close" rel="'+t.array_index+'"></a></li>'}this.search_container.before(r);i=e("#"+n).find("a").first();return i.click(function(e){return s.choice_destroy_link_click(e)})};i.prototype.choice_destroy_link_click=function(t){t.preventDefault();if(!this.is_disabled){this.pending_destroy_click=true;return this.choice_destroy(e(t.target))}else{return t.stopPropagation}};i.prototype.choice_destroy=function(e){if(this.result_deselect(e.attr("rel"))){this.choices-=1;this.show_search_field_default();if(this.is_multiple&&this.choices>0&&this.search_field.val().length<1){this.results_hide()}e.parents("li").first().remove();return this.search_field_scale()}};i.prototype.results_reset=function(){this.form_field.options[0].selected=true;this.selected_item.find("span").text(this.default_text);if(!this.is_multiple){this.selected_item.addClass("chzn-default")}this.show_search_field_default();this.results_reset_cleanup();this.form_field_jq.trigger("change");if(this.active_field){return this.results_hide()}};i.prototype.results_reset_cleanup=function(){this.current_value=this.form_field_jq.val();return this.selected_item.find("abbr").remove()};i.prototype.result_select=function(e){var t,n,r,i;if(this.result_highlight){t=this.result_highlight;n=t.attr("id");this.result_clear_highlight();if(this.is_multiple){this.result_deactivate(t)}else{this.search_results.find(".result-selected").removeClass("result-selected");this.result_single_selected=t;this.selected_item.removeClass("chzn-default")}t.addClass("result-selected");i=n.substr(n.lastIndexOf("_")+1);r=this.results_data[i];r.selected=true;this.form_field.options[r.options_index].selected=true;if(this.is_multiple){this.choice_build(r)}else{this.selected_item.find("span").first().text(r.text);if(this.allow_single_deselect){this.single_deselect_control_build()}}if(!((e.metaKey||e.ctrlKey)&&this.is_multiple)){this.results_hide()}this.search_field.val("");if(this.is_multiple||this.form_field_jq.val()!==this.current_value){this.form_field_jq.trigger("change",{selected:this.form_field.options[r.options_index].value})}this.current_value=this.form_field_jq.val();return this.search_field_scale()}};i.prototype.result_activate=function(e){return e.addClass("active-result")};i.prototype.result_deactivate=function(e){return e.removeClass("active-result")};i.prototype.result_deselect=function(t){var n,r;r=this.results_data[t];if(!this.form_field.options[r.options_index].disabled){r.selected=false;this.form_field.options[r.options_index].selected=false;n=e("#"+this.container_id+"_o_"+t);n.removeClass("result-selected").addClass("active-result").show();this.result_clear_highlight();this.winnow_results();this.form_field_jq.trigger("change",{deselected:this.form_field.options[r.options_index].value});this.search_field_scale();return true}else{return false}};i.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect&&this.selected_item.find("abbr").length<1){return this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>')}};i.prototype.winnow_results=function(){function E(e){if(!w){w=b}for(var t=0;t<w.length;t++){e=e.replace(w[t].letters,w[t].base)}return e}var t,n,r,i,s,o,u,a,f,l,c,h,p,d,v,m,g,y;this.no_results_clear();f=0;var b=[{base:"A",letters:/[\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F]/g},{base:"AA",letters:/[\uA732]/g},{base:"AE",letters:/[\u00C6\u01FC\u01E2]/g},{base:"AO",letters:/[\uA734]/g},{base:"AU",letters:/[\uA736]/g},{base:"AV",letters:/[\uA738\uA73A]/g},{base:"AY",letters:/[\uA73C]/g},{base:"B",letters:/[\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181]/g},{base:"C",letters:/[\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E]/g},{base:"D",letters:/[\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779]/g},{base:"DZ",letters:/[\u01F1\u01C4]/g},{base:"Dz",letters:/[\u01F2\u01C5]/g},{base:"E",letters:/[\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E]/g},{base:"F",letters:/[\u0046\u24BB\uFF26\u1E1E\u0191\uA77B]/g},{base:"G",letters:/[\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E]/g},{base:"H",letters:/[\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D]/g},{base:"I",letters:/[\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197]/g},{base:"J",letters:/[\u004A\u24BF\uFF2A\u0134\u0248]/g},{base:"K",letters:/[\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2]/g},{base:"L",letters:/[\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780]/g},{base:"LJ",letters:/[\u01C7]/g},{base:"Lj",letters:/[\u01C8]/g},{base:"M",letters:/[\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C]/g},{base:"N",letters:/[\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4]/g},{base:"NJ",letters:/[\u01CA]/g},{base:"Nj",letters:/[\u01CB]/g},{base:"O",letters:/[\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C]/g},{base:"OI",letters:/[\u01A2]/g},{base:"OO",letters:/[\uA74E]/g},{base:"OU",letters:/[\u0222]/g},{base:"P",letters:/[\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754]/g},{base:"Q",letters:/[\u0051\u24C6\uFF31\uA756\uA758\u024A]/g},{base:"R",letters:/[\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782]/g},{base:"S",letters:/[\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784]/g},{base:"T",letters:/[\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786]/g},{base:"TZ",letters:/[\uA728]/g},{base:"U",letters:/[\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244]/g},{base:"V",letters:/[\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245]/g},{base:"VY",letters:/[\uA760]/g},{base:"W",letters:/[\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72]/g},{base:"X",letters:/[\u0058\u24CD\uFF38\u1E8A\u1E8C]/g},{base:"Y",letters:/[\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE]/g},{base:"Z",letters:/[\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762]/g},{base:"a",letters:/[\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250]/g},{base:"aa",letters:/[\uA733]/g},{base:"ae",letters:/[\u00E6\u01FD\u01E3]/g},{base:"ao",letters:/[\uA735]/g},{base:"au",letters:/[\uA737]/g},{base:"av",letters:/[\uA739\uA73B]/g},{base:"ay",letters:/[\uA73D]/g},{base:"b",letters:/[\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253]/g},{base:"c",letters:/[\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184]/g},{base:"d",letters:/[\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A]/g},{base:"dz",letters:/[\u01F3\u01C6]/g},{base:"e",letters:/[\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD]/g},{base:"f",letters:/[\u0066\u24D5\uFF46\u1E1F\u0192\uA77C]/g},{base:"g",letters:/[\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F]/g},{base:"h",letters:/[\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265]/g},{base:"hv",letters:/[\u0195]/g},{base:"i",letters:/[\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131]/g},{base:"j",letters:/[\u006A\u24D9\uFF4A\u0135\u01F0\u0249]/g},{base:"k",letters:/[\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3]/g},{base:"l",letters:/[\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747]/g},{base:"lj",letters:/[\u01C9]/g},{base:"m",letters:/[\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F]/g},{base:"n",letters:/[\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5]/g},{base:"nj",letters:/[\u01CC]/g},{base:"o",letters:/[\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275]/g},{base:"oi",letters:/[\u01A3]/g},{base:"ou",letters:/[\u0223]/g},{base:"oo",letters:/[\uA74F]/g},{base:"p",letters:/[\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755]/g},{base:"q",letters:/[\u0071\u24E0\uFF51\u024B\uA757\uA759]/g},{base:"r",letters:/[\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783]/g},{base:"s",letters:/[\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B]/g},{base:"t",letters:/[\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787]/g},{base:"tz",letters:/[\uA729]/g},{base:"u",letters:/[\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289]/g},{base:"v",letters:/[\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C]/g},{base:"vy",letters:/[\uA761]/g},{base:"w",letters:/[\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73]/g},{base:"x",letters:/[\u0078\u24E7\uFF58\u1E8B\u1E8D]/g},{base:"y",letters:/[\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF]/g},{base:"z",letters:/[\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763]/g}];var w;l=this.search_field.val()===this.default_text?"":e("<div/>").text(E(e.trim(this.search_field.val()))).html();o=this.search_contains?"":"^";s=new RegExp(o+l.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),"i");p=new RegExp(l.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),"i");y=this.results_data;for(d=0,m=y.length;d<m;d++){n=y[d];if(!n.disabled&&!n.empty){if(n.group){e("#"+n.dom_id).css("display","none")}else if(!(this.is_multiple&&n.selected)){t=false;a=n.dom_id;u=e("#"+a);if(s.test(E(n.html))){t=true;f+=1}else if(this.enable_split_word_search&&(n.html.indexOf(" ")>=0||n.html.indexOf("[")===0)){i=E(n.html).replace(/\[|\]/g,"").split(" ");if(i.length){for(v=0,g=i.length;v<g;v++){r=i[v];if(s.test(r)){t=true;f+=1}}}}if(t){if(l.length){c=E(n.html).search(p);h=n.html.substr(0,c+l.length)+"</em>"+n.html.substr(c+l.length);h=h.substr(0,c)+"<em>"+h.substr(c)}else{h=n.html}u.html(h);this.result_activate(u);if(n.group_array_index!=null){e("#"+this.results_data[n.group_array_index].dom_id).css("display","list-item")}}else{if(this.result_highlight&&a===this.result_highlight.attr("id")){this.result_clear_highlight()}this.result_deactivate(u)}}}}if(f<1&&l.length){return this.no_results(l)}else{return this.winnow_results_set_highlight()}};i.prototype.winnow_results_clear=function(){var t,n,r,i,s;this.search_field.val("");n=this.search_results.find("li");s=[];for(r=0,i=n.length;r<i;r++){t=n[r];t=e(t);if(t.hasClass("group-result")){s.push(t.css("display","auto"))}else if(!this.is_multiple||!t.hasClass("result-selected")){s.push(this.result_activate(t))}else{s.push(void 0)}}return s};i.prototype.winnow_results_set_highlight=function(){var e,t;if(!this.result_highlight){t=!this.is_multiple?this.search_results.find(".result-selected.active-result"):[];e=t.length?t.first():this.search_results.find(".active-result").first();if(e!=null){return this.result_do_highlight(e)}}};i.prototype.no_results=function(t){var n;n=e('<li class="no-results">'+this.results_none_found+' "<span></span>"</li>');n.find("span").first().html(t);return this.search_results.append(n)};i.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()};i.prototype.keydown_arrow=function(){var t,n;if(!this.result_highlight){t=this.search_results.find("li.active-result").first();if(t){this.result_do_highlight(e(t))}}else if(this.results_showing){n=this.result_highlight.nextAll("li.active-result").first();if(n){this.result_do_highlight(n)}}if(!this.results_showing){return this.results_show()}};i.prototype.keyup_arrow=function(){var e;if(!this.results_showing&&!this.is_multiple){return this.results_show()}else if(this.result_highlight){e=this.result_highlight.prevAll("li.active-result");if(e.length){return this.result_do_highlight(e.first())}else{if(this.choices>0){this.results_hide()}return this.result_clear_highlight()}}};i.prototype.keydown_backstroke=function(){var e;if(this.pending_backstroke){this.choice_destroy(this.pending_backstroke.find("a").first());return this.clear_backstroke()}else{e=this.search_container.siblings("li.search-choice").last();if(e.length&&!e.hasClass("search-choice-disabled")){this.pending_backstroke=e;if(this.single_backstroke_delete){return this.keydown_backstroke()}else{return this.pending_backstroke.addClass("search-choice-focus")}}}};i.prototype.clear_backstroke=function(){if(this.pending_backstroke){this.pending_backstroke.removeClass("search-choice-focus")}return this.pending_backstroke=null};i.prototype.keydown_checker=function(e){var t,n;t=(n=e.which)!=null?n:e.keyCode;this.search_field_scale();if(t!==8&&this.pending_backstroke){this.clear_backstroke()}switch(t){case 8:this.backstroke_length=this.search_field.val().length;break;case 9:if(this.results_showing&&!this.is_multiple){this.result_select(e)}this.mouse_on_container=false;break;case 13:e.preventDefault();break;case 38:e.preventDefault();this.keyup_arrow();break;case 40:this.keydown_arrow();break}};i.prototype.search_field_scale=function(){var t,n,r,i,s,o,u,a,f;if(this.is_multiple){r=0;u=0;s="position:absolute; left: -1000px; top: -1000px; display:none;";o=["font-size","font-style","font-weight","font-family","line-height","text-transform","letter-spacing"];for(a=0,f=o.length;a<f;a++){i=o[a];s+=i+":"+this.search_field.css(i)+";"}n=e("<div />",{style:s});n.text(this.search_field.val());e("body").append(n);u=n.width()+25;n.remove();if(u>this.f_width-10){u=this.f_width-10}this.search_field.css({width:u+"px"});t=this.container.height();return this.dropdown.css({top:t+"px"})}};i.prototype.generate_random_id=function(){var t;t="sel"+this.generate_random_char()+this.generate_random_char()+this.generate_random_char();while(e("#"+t).length>0){t+=this.generate_random_char()}return t};return i}(AbstractChosen);r.Chosen=t;n=function(e){var t;return t=e.outerWidth()-e.width()};r.get_side_border_padding=n}).call(this)

+1

Unicode-Gehäusefalten wäre gut, +1.

+1

sry @tjschuck für doppelten Beitrag

Ich habe das gleiche Problem gefunden und entwickle meine Lösung http://fiddle.jshell.net/whqb5/1/

ein Element 'Demokratische Republik Kongo' wird mit der Suche 'Kongorepublik' in beliebiger Reihenfolge in meiner Methode ausgewählt, Datei in UTF-8 für Sonderzeichenfolgen speichern "(Á|À|Ã|Â|Ä|á|à|ã |â|ä|a|A)".

sry für mein schlechtes englisch,

"Ich bin bei der Entwicklung meiner Lösung auf das gleiche Problem gestoßen http://fiddle.jshell.net/whqb5/1/

Die Suche verwendet alle eingegebenen Wörter in beliebiger Reihenfolge mit oder ohne Akzent."

*neue Version bearbeiten

    AbstractChosen.prototype.stringEscaped = function (str) {

        var specialChars = [
            { val: "a", let: "(Á|À|Ã|Â|Ä|á|à|ã|â|ä|a|A)" },
            { val: "e", let: "(É|È|Ê|Ë|é|è|ê|ë|e|E)" },
            { val: "i", let: "(Í|Ì|Î|Ï|í|ì|î|ï|i|I)" },
            { val: "o", let: "(Ó|Ò|Õ|Ô|Ö|ó|ò|õ|ô|ö|o|O)" },
            { val: "u", let: "(Ú|Ù|Û|Ü|ú|ù|û|ü|u|U)" },
            { val: "c", let: "(Ç|ç|c|C)" }];
        for (var i = 0; i < specialChars.length; i++) {
            str = str.replace(new RegExp(specialChars[i].let, "g"), specialChars[i].val);
            str = str.replace(new RegExp(specialChars[i].val, "g"), specialChars[i].let);
        }
        return str;
    }


    AbstractChosen.prototype.winnow_results = function () {
        var escapedSearchText, option, regex, regexAnchor, results, results_group, searchText, startpos, text, zregex, _i, _len, _ref, search_split, found;

        this.no_results_clear();
        results = 0;
        searchText = this.get_search_text();
        escapedSearchText = searchText;
        _ref = this.results_data;
        search_split = searchText.split(' ');
        regex = searchText.split(' '); 
        for (_s = 0, _lens = search_split.length; _s < _lens; _s++) {
            regex[_s] = new RegExp(this.stringEscaped(search_split[_s]), "i");
        }

        for (_i = 0, _len = _ref.length; _i < _len; _i++) {
            option = _ref[_i];
            option.search_match = false;
            results_group = null;
            if (this.include_option_in_results(option)) {
                if (option.group) {
                    option.group_match = false;
                    option.active_options = 0;
                }
                if ((option.group_array_index != null) && this.results_data[option.group_array_index]) {
                    results_group = this.results_data[option.group_array_index];
                    if (results_group.active_options === 0 && results_group.search_match) {
                        results += 1;
                    }
                    results_group.active_options += 1;
                }
                if (!(option.group && !this.group_search)) {
                    option.search_text = option.group ? option.label : option.html;
                    found = 0;
                    for (_s = 0, _lens = regex.length; _s < _lens; _s++) {
                        option.search_match = this.search_string_match(option.search_text, regex[_s]);
                        if (option.search_match && !option.group) {
                            found += 1;
                        }
                        if (found == _lens)
                            results += 1;
                        else
                            option.search_match = null;

                    }
                    if (option.search_match) {
                        if (searchText.length) {
                            for (_s = 0, _lens = search_split.length; _s < _lens; _s++) {
                                startpos = option.search_text.search(regex[_s]);
                                text = option.search_text.substr(0, startpos + search_split[_s].length) + '</em>' + option.search_text.substr(startpos + search_split[_s].length);
                                option.search_text = text.substr(0, startpos) + '<em>' + text.substr(startpos);
                            }
                        }
                        if (results_group != null) {
                            results_group.group_match = true;
                        }
                    } else if ((option.group_array_index != null) && this.results_data[option.group_array_index].search_match) {
                        option.search_match = true;
                    }
                }
            }
        }
        this.result_clear_highlight();
        if (results < 1 && searchText.length) {
            this.update_results_content("");
            return this.no_results(searchText);
        } else {
            this.update_results_content(this.results_option_build());
            return this.winnow_results_set_highlight();
        }
    };

    AbstractChosen.prototype.search_string_match = function (search_string, regex) {
        var part, parts, _i, _len;
        if (regex.test(search_string)) {
            return true;
        } else if (this.enable_split_word_search && (search_string.indexOf(" ") >= 0 || search_string.indexOf("[") === 0)) {
            parts = search_string.replace(/\[|\]/g, "").split(" ");
            if (parts.length) {
                for (_i = 0, _len = parts.length; _i < _len; _i++) {
                    part = parts[_i];
                    if (regex.test(part)) {
                        return true;
                    }
                }
            }
            return false;
        }
    };

+1

@felpasl könntest du dafür eine PR erstellen? Vielen Dank!

+1

+1

@manuelv @Keeguon vielleicht solltest du dir das mal ansehen : http://brianreavis.github.io/selectize.js/

Ich habe gerade die Lösung von felpasl implementiert (oben 5 Kommentare erwähnt) und es scheint gut zu funktionieren.

Warnung: Denken Sie daran, die modifizierte "chosen.jquery.js" in UTF8 zu speichern, wie von felpasl angegeben.

Ich mag die Version, die @felpasl erstellt hat, aber wie wäre es mit mehr Unicode? ;)

var specialChars = [
    { val: "ae", let: "(ä|æ|ǽ)" },
    { val: "oe", let: "(ö|œ)" },
    { val: "ue", let: "(ü)" },
    { val: "Ae", let: "(Ä)" },
    { val: "Ue", let: "(Ü)" },
    { val: "Oe", let: "(Ö)" },
    { val: "AE", let: "(Æ|Ǽ)" },
    { val: "ss", let: "(ß)" },
    { val: "IJ", let: "(IJ)" },
    { val: "ij", let: "(ij)" },
    { val: "OE", let: "(Œ)" },
    { val: "A", let: "(À|Á|Â|Ã|Ä|Å|Ǻ|Ā|Ă|Ą|Ǎ)" },
    { val: "a", let: "(à|á|â|ã|å|ǻ|ā|ă|ą|ǎ|ª)" },
    { val: "C", let: "(Ç|Ć|Ĉ|Ċ|Č)" },
    { val: "c", let: "(ç|ć|ĉ|ċ|č)" },
    { val: "D", let: "(Ð|Ď|Đ)" },
    { val: "d", let: "(ð|ď|đ)" },
    { val: "E", let: "(È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě)" },
    { val: "e", let: "(è|é|ê|ë|ē|ĕ|ė|ę|ě)" },
    { val: "G", let: "(Ĝ|Ğ|Ġ|Ģ)" },
    { val: "g", let: "(ĝ|ğ|ġ|ģ)" },
    { val: "H", let: "(Ĥ|Ħ)" },
    { val: "h", let: "(ĥ|ħ)" },
    { val: "I", let: "(Ì|Í|Î|Ï|Ĩ|Ī|Ĭ|Ǐ|Į|İ)" },
    { val: "i", let: "(ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı)" },
    { val: "J", let: "(Ĵ)" },
    { val: "j", let: "(ĵ)" },
    { val: "K", let: "(Ķ)" },
    { val: "k", let: "(ķ)" },
    { val: "L", let: "(Ĺ|Ļ|Ľ|Ŀ|Ł)" },
    { val: "l", let: "(ĺ|ļ|ľ|ŀ|ł)" },
    { val: "N", let: "(Ñ|Ń|Ņ|Ň)" },
    { val: "n", let: "(ñ|ń|ņ|ň|ʼn)" },
    { val: "O", let: "(Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ)" },
    { val: "o", let: "(ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º)" },
    { val: "R", let: "(Ŕ|Ŗ|Ř)" },
    { val: "r", let: "(ŕ|ŗ|ř)" },
    { val: "S", let: "(Ś|Ŝ|Ş|Š)" },
    { val: "s", let: "(ś|ŝ|ş|š|ſ)" },
    { val: "T", let: "(Ţ|Ť|Ŧ)" },
    { val: "t", let: "(ţ|ť|ŧ)" },
    { val: "U", let: "(Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ)" },
    { val: "u", let: "(ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ)" },
    { val: "Y", let: "(Ý|Ÿ|Ŷ)" },
    { val: "y", let: "(ý|ÿ|ŷ)" },
    { val: "W", let: "(Ŵ)" },
    { val: "w", let: "(ŵ)" },
    { val: "Z", let: "(Ź|Ż|Ž)" },
    { val: "z", let: "(ź|ż|ž)" },
    { val: "f", let: "(ƒ)" }
];

Fehlt noch etwas?

@refringe Das scheint am besten einer separaten Bibliothek zu überlassen, deren einziges Anliegen diese Art der Latinisierung ist - so etwas wie https://github.com/dundalek/latinize oder http://semplicewebsites.com/removing-accents- Javascript.

@tjschuck Einverstanden! Ich schaue nur kurz den Latinize-Code durch... Ich kann schon sagen, dass ich einiges übersehen habe. Unabhängig davon denke ich, dass das Update einen größeren Bereich von Unicode-Zeichen enthalten muss, um normalisiert zu werden.

Tatsächlich ist die Karte, die @zavan oben erwähnt hat, unheimlich nah an dem, was
http://jsperf.com/latinize

Ich mag.

+1

Nicht sicher, ob es sich um einen Zusammenhang handelt: Wenn die Optionen Fragen in spanischer Sprache enthalten, denen ein öffnendes Fragezeichen ('¿') vorangestellt ist, werden die ersten Wörter nicht abgeglichen. Beispiel: Option: "¿Como estás?" -> "estás" wird gefunden, aber nicht "Como".

@dgilperez Dieses spezifische Problem _könnte_ stattdessen von https://github.com/harvesthq/chosen/pull/1483 behoben werden.

Irgendwelche Neuigkeiten?

Hier ist eine sehr interessante SO-Frage zu diesem Thema: http://stackoverflow.com/questions/990904/javascript-remove-accents-diacritics-in-strings

Ich habe die in der derzeit akzeptierten Antwort erwähnte Lösung tatsächlich in einem professionellen Projekt verwendet und sie funktioniert einwandfrei.

Es verwendet den Unicode-Standard, um Zeichen mit Diaktritika in dasselbe Zeichen ohne Diaktritika zu codieren. Vielleicht möchten Sie die bereitgestellte Lösung auf andere Skripte/Sprachen erweitern (es sollte einfach genug sein, es sei denn, Sie müssen eine große Menge unterstützen).

Weitere Informationen dazu finden Sie in den Kommentaren in der SO-Antwort.

@tjschuck Ich stimme zu, das sollte man wohl einer Fachbibliothek überlassen. Ich überlege, nächstes Jahr darin einzutauchen, kontaktiere mich, wenn du Interesse hast, an dem Spaß teilzunehmen.

Arbeitet jemand an der Unterstützung dafür?

Warum ist dies kein offizielles Feature dieses Plugins?

+1

+1

Sehen Sie sich die Hex-Code-Sprachunterstützung an.
Bei mir funktioniert es gut mit 1.4.2

AbstractChosen.prototype.stripDiacritics = function(text) {
      DIACRITICS = {"\u24B6":"A","\uFF21":"A","\u00C0":"A","\u00C1":"A","\u00C2":"A","\u1EA6":"A","\u1EA4":"A","\u1EAA":"A","\u1EA8":"A","\u00C3":"A","\u0100":"A","\u0102":"A","\u1EB0":"A","\u1EAE":"A","\u1EB4":"A","\u1EB2":"A","\u0226":"A","\u01E0":"A","\u00C4":"A","\u01DE":"A","\u1EA2":"A","\u00C5":"A","\u01FA":"A","\u01CD":"A","\u0200":"A","\u0202":"A","\u1EA0":"A","\u1EAC":"A","\u1EB6":"A","\u1E00":"A","\u0104":"A","\u023A":"A","\u2C6F":"A","\uA732":"AA","\u00C6":"AE","\u01FC":"AE","\u01E2":"AE","\uA734":"AO","\uA736":"AU","\uA738":"AV","\uA73A":"AV","\uA73C":"AY","\u24B7":"B","\uFF22":"B","\u1E02":"B","\u1E04":"B","\u1E06":"B","\u0243":"B","\u0182":"B","\u0181":"B","\u24B8":"C","\uFF23":"C","\u0106":"C","\u0108":"C","\u010A":"C","\u010C":"C","\u00C7":"C","\u1E08":"C","\u0187":"C","\u023B":"C","\uA73E":"C","\u24B9":"D","\uFF24":"D","\u1E0A":"D","\u010E":"D","\u1E0C":"D","\u1E10":"D","\u1E12":"D","\u1E0E":"D","\u0110":"D","\u018B":"D","\u018A":"D","\u0189":"D","\uA779":"D","\u01F1":"DZ","\u01C4":"DZ","\u01F2":"Dz","\u01C5":"Dz","\u24BA":"E","\uFF25":"E","\u00C8":"E","\u00C9":"E","\u00CA":"E","\u1EC0":"E","\u1EBE":"E","\u1EC4":"E","\u1EC2":"E","\u1EBC":"E","\u0112":"E","\u1E14":"E","\u1E16":"E","\u0114":"E","\u0116":"E","\u00CB":"E","\u1EBA":"E","\u011A":"E","\u0204":"E","\u0206":"E","\u1EB8":"E","\u1EC6":"E","\u0228":"E","\u1E1C":"E","\u0118":"E","\u1E18":"E","\u1E1A":"E","\u0190":"E","\u018E":"E","\u24BB":"F","\uFF26":"F","\u1E1E":"F","\u0191":"F","\uA77B":"F","\u24BC":"G","\uFF27":"G","\u01F4":"G","\u011C":"G","\u1E20":"G","\u011E":"G","\u0120":"G","\u01E6":"G","\u0122":"G","\u01E4":"G","\u0193":"G","\uA7A0":"G","\uA77D":"G","\uA77E":"G","\u24BD":"H","\uFF28":"H","\u0124":"H","\u1E22":"H","\u1E26":"H","\u021E":"H","\u1E24":"H","\u1E28":"H","\u1E2A":"H","\u0126":"H","\u2C67":"H","\u2C75":"H","\uA78D":"H","\u24BE":"I","\uFF29":"I","\u00CC":"I","\u00CD":"I","\u00CE":"I","\u0128":"I","\u012A":"I","\u012C":"I","\u0130":"I","\u00CF":"I","\u1E2E":"I","\u1EC8":"I","\u01CF":"I","\u0208":"I","\u020A":"I","\u1ECA":"I","\u012E":"I","\u1E2C":"I","\u0197":"I","\u24BF":"J","\uFF2A":"J","\u0134":"J","\u0248":"J","\u24C0":"K","\uFF2B":"K","\u1E30":"K","\u01E8":"K","\u1E32":"K","\u0136":"K","\u1E34":"K","\u0198":"K","\u2C69":"K","\uA740":"K","\uA742":"K","\uA744":"K","\uA7A2":"K","\u24C1":"L","\uFF2C":"L","\u013F":"L","\u0139":"L","\u013D":"L","\u1E36":"L","\u1E38":"L","\u013B":"L","\u1E3C":"L","\u1E3A":"L","\u0141":"L","\u023D":"L","\u2C62":"L","\u2C60":"L","\uA748":"L","\uA746":"L","\uA780":"L","\u01C7":"LJ","\u01C8":"Lj","\u24C2":"M","\uFF2D":"M","\u1E3E":"M","\u1E40":"M","\u1E42":"M","\u2C6E":"M","\u019C":"M","\u24C3":"N","\uFF2E":"N","\u01F8":"N","\u0143":"N","\u00D1":"N","\u1E44":"N","\u0147":"N","\u1E46":"N","\u0145":"N","\u1E4A":"N","\u1E48":"N","\u0220":"N","\u019D":"N","\uA790":"N","\uA7A4":"N","\u01CA":"NJ","\u01CB":"Nj","\u24C4":"O","\uFF2F":"O","\u00D2":"O","\u00D3":"O","\u00D4":"O","\u1ED2":"O","\u1ED0":"O","\u1ED6":"O","\u1ED4":"O","\u00D5":"O","\u1E4C":"O","\u022C":"O","\u1E4E":"O","\u014C":"O","\u1E50":"O","\u1E52":"O","\u014E":"O","\u022E":"O","\u0230":"O","\u00D6":"O","\u022A":"O","\u1ECE":"O","\u0150":"O","\u01D1":"O","\u020C":"O","\u020E":"O","\u01A0":"O","\u1EDC":"O","\u1EDA":"O","\u1EE0":"O","\u1EDE":"O","\u1EE2":"O","\u1ECC":"O","\u1ED8":"O","\u01EA":"O","\u01EC":"O","\u00D8":"O","\u01FE":"O","\u0186":"O","\u019F":"O","\uA74A":"O","\uA74C":"O","\u01A2":"OI","\uA74E":"OO","\u0222":"OU","\u24C5":"P","\uFF30":"P","\u1E54":"P","\u1E56":"P","\u01A4":"P","\u2C63":"P","\uA750":"P","\uA752":"P","\uA754":"P","\u24C6":"Q","\uFF31":"Q","\uA756":"Q","\uA758":"Q","\u024A":"Q","\u24C7":"R","\uFF32":"R","\u0154":"R","\u1E58":"R","\u0158":"R","\u0210":"R","\u0212":"R","\u1E5A":"R","\u1E5C":"R","\u0156":"R","\u1E5E":"R","\u024C":"R","\u2C64":"R","\uA75A":"R","\uA7A6":"R","\uA782":"R","\u24C8":"S","\uFF33":"S","\u1E9E":"S","\u015A":"S","\u1E64":"S","\u015C":"S","\u1E60":"S","\u0160":"S","\u1E66":"S","\u1E62":"S","\u1E68":"S","\u0218":"S","\u015E":"S","\u2C7E":"S","\uA7A8":"S","\uA784":"S","\u24C9":"T","\uFF34":"T","\u1E6A":"T","\u0164":"T","\u1E6C":"T","\u021A":"T","\u0162":"T","\u1E70":"T","\u1E6E":"T","\u0166":"T","\u01AC":"T","\u01AE":"T","\u023E":"T","\uA786":"T","\uA728":"TZ","\u24CA":"U","\uFF35":"U","\u00D9":"U","\u00DA":"U","\u00DB":"U","\u0168":"U","\u1E78":"U","\u016A":"U","\u1E7A":"U","\u016C":"U","\u00DC":"U","\u01DB":"U","\u01D7":"U","\u01D5":"U","\u01D9":"U","\u1EE6":"U","\u016E":"U","\u0170":"U","\u01D3":"U","\u0214":"U","\u0216":"U","\u01AF":"U","\u1EEA":"U","\u1EE8":"U","\u1EEE":"U","\u1EEC":"U","\u1EF0":"U","\u1EE4":"U","\u1E72":"U","\u0172":"U","\u1E76":"U","\u1E74":"U","\u0244":"U","\u24CB":"V","\uFF36":"V","\u1E7C":"V","\u1E7E":"V","\u01B2":"V","\uA75E":"V","\u0245":"V","\uA760":"VY","\u24CC":"W","\uFF37":"W","\u1E80":"W","\u1E82":"W","\u0174":"W","\u1E86":"W","\u1E84":"W","\u1E88":"W","\u2C72":"W","\u24CD":"X","\uFF38":"X","\u1E8A":"X","\u1E8C":"X","\u24CE":"Y","\uFF39":"Y","\u1EF2":"Y","\u00DD":"Y","\u0176":"Y","\u1EF8":"Y","\u0232":"Y","\u1E8E":"Y","\u0178":"Y","\u1EF6":"Y","\u1EF4":"Y","\u01B3":"Y","\u024E":"Y","\u1EFE":"Y","\u24CF":"Z","\uFF3A":"Z","\u0179":"Z","\u1E90":"Z","\u017B":"Z","\u017D":"Z","\u1E92":"Z","\u1E94":"Z","\u01B5":"Z","\u0224":"Z","\u2C7F":"Z","\u2C6B":"Z","\uA762":"Z","\u24D0":"a","\uFF41":"a","\u1E9A":"a","\u00E0":"a","\u00E1":"a","\u00E2":"a","\u1EA7":"a","\u1EA5":"a","\u1EAB":"a","\u1EA9":"a","\u00E3":"a","\u0101":"a","\u0103":"a","\u1EB1":"a","\u1EAF":"a","\u1EB5":"a","\u1EB3":"a","\u0227":"a","\u01E1":"a","\u00E4":"a","\u01DF":"a","\u1EA3":"a","\u00E5":"a","\u01FB":"a","\u01CE":"a","\u0201":"a","\u0203":"a","\u1EA1":"a","\u1EAD":"a","\u1EB7":"a","\u1E01":"a","\u0105":"a","\u2C65":"a","\u0250":"a","\uA733":"aa","\u00E6":"ae","\u01FD":"ae","\u01E3":"ae","\uA735":"ao","\uA737":"au","\uA739":"av","\uA73B":"av","\uA73D":"ay","\u24D1":"b","\uFF42":"b","\u1E03":"b","\u1E05":"b","\u1E07":"b","\u0180":"b","\u0183":"b","\u0253":"b","\u24D2":"c","\uFF43":"c","\u0107":"c","\u0109":"c","\u010B":"c","\u010D":"c","\u00E7":"c","\u1E09":"c","\u0188":"c","\u023C":"c","\uA73F":"c","\u2184":"c","\u24D3":"d","\uFF44":"d","\u1E0B":"d","\u010F":"d","\u1E0D":"d","\u1E11":"d","\u1E13":"d","\u1E0F":"d","\u0111":"d","\u018C":"d","\u0256":"d","\u0257":"d","\uA77A":"d","\u01F3":"dz","\u01C6":"dz","\u24D4":"e","\uFF45":"e","\u00E8":"e","\u00E9":"e","\u00EA":"e","\u1EC1":"e","\u1EBF":"e","\u1EC5":"e","\u1EC3":"e","\u1EBD":"e","\u0113":"e","\u1E15":"e","\u1E17":"e","\u0115":"e","\u0117":"e","\u00EB":"e","\u1EBB":"e","\u011B":"e","\u0205":"e","\u0207":"e","\u1EB9":"e","\u1EC7":"e","\u0229":"e","\u1E1D":"e","\u0119":"e","\u1E19":"e","\u1E1B":"e","\u0247":"e","\u025B":"e","\u01DD":"e","\u24D5":"f","\uFF46":"f","\u1E1F":"f","\u0192":"f","\uA77C":"f","\u24D6":"g","\uFF47":"g","\u01F5":"g","\u011D":"g","\u1E21":"g","\u011F":"g","\u0121":"g","\u01E7":"g","\u0123":"g","\u01E5":"g","\u0260":"g","\uA7A1":"g","\u1D79":"g","\uA77F":"g","\u24D7":"h","\uFF48":"h","\u0125":"h","\u1E23":"h","\u1E27":"h","\u021F":"h","\u1E25":"h","\u1E29":"h","\u1E2B":"h","\u1E96":"h","\u0127":"h","\u2C68":"h","\u2C76":"h","\u0265":"h","\u0195":"hv","\u24D8":"i","\uFF49":"i","\u00EC":"i","\u00ED":"i","\u00EE":"i","\u0129":"i","\u012B":"i","\u012D":"i","\u00EF":"i","\u1E2F":"i","\u1EC9":"i","\u01D0":"i","\u0209":"i","\u020B":"i","\u1ECB":"i","\u012F":"i","\u1E2D":"i","\u0268":"i","\u0131":"i","\u24D9":"j","\uFF4A":"j","\u0135":"j","\u01F0":"j","\u0249":"j","\u24DA":"k","\uFF4B":"k","\u1E31":"k","\u01E9":"k","\u1E33":"k","\u0137":"k","\u1E35":"k","\u0199":"k","\u2C6A":"k","\uA741":"k","\uA743":"k","\uA745":"k","\uA7A3":"k","\u24DB":"l","\uFF4C":"l","\u0140":"l","\u013A":"l","\u013E":"l","\u1E37":"l","\u1E39":"l","\u013C":"l","\u1E3D":"l","\u1E3B":"l","\u017F":"l","\u0142":"l","\u019A":"l","\u026B":"l","\u2C61":"l","\uA749":"l","\uA781":"l","\uA747":"l","\u01C9":"lj","\u24DC":"m","\uFF4D":"m","\u1E3F":"m","\u1E41":"m","\u1E43":"m","\u0271":"m","\u026F":"m","\u24DD":"n","\uFF4E":"n","\u01F9":"n","\u0144":"n","\u00F1":"n","\u1E45":"n","\u0148":"n","\u1E47":"n","\u0146":"n","\u1E4B":"n","\u1E49":"n","\u019E":"n","\u0272":"n","\u0149":"n","\uA791":"n","\uA7A5":"n","\u01CC":"nj","\u24DE":"o","\uFF4F":"o","\u00F2":"o","\u00F3":"o","\u00F4":"o","\u1ED3":"o","\u1ED1":"o","\u1ED7":"o","\u1ED5":"o","\u00F5":"o","\u1E4D":"o","\u022D":"o","\u1E4F":"o","\u014D":"o","\u1E51":"o","\u1E53":"o","\u014F":"o","\u022F":"o","\u0231":"o","\u00F6":"o","\u022B":"o","\u1ECF":"o","\u0151":"o","\u01D2":"o","\u020D":"o","\u020F":"o","\u01A1":"o","\u1EDD":"o","\u1EDB":"o","\u1EE1":"o","\u1EDF":"o","\u1EE3":"o","\u1ECD":"o","\u1ED9":"o","\u01EB":"o","\u01ED":"o","\u00F8":"o","\u01FF":"o","\u0254":"o","\uA74B":"o","\uA74D":"o","\u0275":"o","\u01A3":"oi","\u0223":"ou","\uA74F":"oo","\u24DF":"p","\uFF50":"p","\u1E55":"p","\u1E57":"p","\u01A5":"p","\u1D7D":"p","\uA751":"p","\uA753":"p","\uA755":"p","\u24E0":"q","\uFF51":"q","\u024B":"q","\uA757":"q","\uA759":"q","\u24E1":"r","\uFF52":"r","\u0155":"r","\u1E59":"r","\u0159":"r","\u0211":"r","\u0213":"r","\u1E5B":"r","\u1E5D":"r","\u0157":"r","\u1E5F":"r","\u024D":"r","\u027D":"r","\uA75B":"r","\uA7A7":"r","\uA783":"r","\u24E2":"s","\uFF53":"s","\u00DF":"s","\u015B":"s","\u1E65":"s","\u015D":"s","\u1E61":"s","\u0161":"s","\u1E67":"s","\u1E63":"s","\u1E69":"s","\u0219":"s","\u015F":"s","\u023F":"s","\uA7A9":"s","\uA785":"s","\u1E9B":"s","\u24E3":"t","\uFF54":"t","\u1E6B":"t","\u1E97":"t","\u0165":"t","\u1E6D":"t","\u021B":"t","\u0163":"t","\u1E71":"t","\u1E6F":"t","\u0167":"t","\u01AD":"t","\u0288":"t","\u2C66":"t","\uA787":"t","\uA729":"tz","\u24E4":"u","\uFF55":"u","\u00F9":"u","\u00FA":"u","\u00FB":"u","\u0169":"u","\u1E79":"u","\u016B":"u","\u1E7B":"u","\u016D":"u","\u00FC":"u","\u01DC":"u","\u01D8":"u","\u01D6":"u","\u01DA":"u","\u1EE7":"u","\u016F":"u","\u0171":"u","\u01D4":"u","\u0215":"u","\u0217":"u","\u01B0":"u","\u1EEB":"u","\u1EE9":"u","\u1EEF":"u","\u1EED":"u","\u1EF1":"u","\u1EE5":"u","\u1E73":"u","\u0173":"u","\u1E77":"u","\u1E75":"u","\u0289":"u","\u24E5":"v","\uFF56":"v","\u1E7D":"v","\u1E7F":"v","\u028B":"v","\uA75F":"v","\u028C":"v","\uA761":"vy","\u24E6":"w","\uFF57":"w","\u1E81":"w","\u1E83":"w","\u0175":"w","\u1E87":"w","\u1E85":"w","\u1E98":"w","\u1E89":"w","\u2C73":"w","\u24E7":"x","\uFF58":"x","\u1E8B":"x","\u1E8D":"x","\u24E8":"y","\uFF59":"y","\u1EF3":"y","\u00FD":"y","\u0177":"y","\u1EF9":"y","\u0233":"y","\u1E8F":"y","\u00FF":"y","\u1EF7":"y","\u1E99":"y","\u1EF5":"y","\u01B4":"y","\u024F":"y","\u1EFF":"y","\u24E9":"z","\uFF5A":"z","\u017A":"z","\u1E91":"z","\u017C":"z","\u017E":"z","\u1E93":"z","\u1E95":"z","\u01B6":"z","\u0225":"z","\u0240":"z","\u2C6C":"z","\uA763":"z"};
      function match(a) {
        return DIACRITICS[a] || a;
      }
      return text.replace(/[^\u0000-\u007E]/g, match);
    };

AbstractChosen.prototype.winnow_results = function() {
  var escapedSearchText, option, regex, results, results_group, searchText, startpos, text, zregex, _i, _len, _ref;
  this.no_results_clear();
  results = 0;
  searchText = this.get_search_text();
  escapedSearchText = searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
  zregex = new RegExp(escapedSearchText, 'i');
  regex = this.get_search_regex(escapedSearchText);
  _ref = this.results_data;
  for (_i = 0, _len = _ref.length; _i < _len; _i++) {
    option = _ref[_i];
    option.search_match = false;
    results_group = null;
    if (this.include_option_in_results(option)) {
      if (option.group) {
        option.group_match = false;
        option.active_options = 0;
      }
      if ((option.group_array_index != null) && this.results_data[option.group_array_index]) {
        results_group = this.results_data[option.group_array_index];
        if (results_group.active_options === 0 && results_group.search_match) {
          results += 1;
        }
        results_group.active_options += 1;
      }
      option.search_text = option.group ? option.label : option.html;
      result_string = this.stripDiacritics(option.search_text);
      if (!(option.group && !this.group_search)) {
        option.search_match = this.search_string_match(option.search_text, regex);
        if (option.search_match && !option.group) {
          results += 1;
        }
        if (option.search_match) {
          if (searchText.length) {
            startpos = result_string.search(zregex);
            text = option.search_text.substr(0, startpos + searchText.length) + '</em>' + option.search_text.substr(startpos + searchText.length);
            // console.log(text);
            option.search_text = text.substr(0, startpos) + '<em>' + text.substr(startpos);
          }
          if (results_group != null) {
            results_group.group_match = true;
          }
        } else if ((option.group_array_index != null) && this.results_data[option.group_array_index].search_match) {
          option.search_match = true;
        }
      }
    }
  }
  this.result_clear_highlight();
  if (results < 1 && searchText.length) {
    this.update_results_content("");
    return this.no_results(searchText);
  } else {
    this.update_results_content(this.results_option_build());
    return this.winnow_results_set_highlight();
  }
};

AbstractChosen.prototype.search_string_match = function(search_string, regex) {
      var part, parts, _i, _len;
      search_string = this.stripDiacritics(search_string);
      if (regex.test(search_string)) {
        return true;
      } else if (this.enable_split_word_search && (search_string.indexOf(" ") >= 0 || search_string.indexOf("[") === 0)) {
        parts = search_string.replace(/[|]/g, "").split(" ");
        if (parts.length) {
          for (_i = 0, _len = parts.length; _i < _len; _i++) {
            part = parts[_i];
            if (regex.test(part)) {
              return true;
            }
          }
        }
      }
    };

+1

+1
Es wäre schön, wenn es in die Auswahl selbst integriert wäre, anstatt den Code zu hacken
mein Fehler, ich habe nicht überprüft, ob es bereits ein offenes Problem gibt

+1

+1

@tjschuck Wenn ich Laufen zu bringen und mich umzusehen, wie es geht, aber wenn Sie einen Hinweis teilen können es würde enorm helfen.

Nun, ich habe es versucht. Ich habe gerade eine Pull-Anfrage mit Unterstützung dafür erstellt. Es lohnt sich zu testen und zu kommentieren.

Da der Pull Request die Coffeescripts modifiziert, habe ich eine Testversion unter . veröffentlicht

https://github.com/hanoii/chosen/releases

Laden Sie v1.4.3-hanoii herunter und testen Sie es. Ich bin mir nicht sicher, ob dies der beste Weg ist, um bei der Überprüfung zu helfen, aber wahrscheinlich ist es nicht mehr weit.

Getestete @hanoii- Version, funktioniert bei mir hervorragend!
Bitte im Master zusammenführen.

Wenn Sie #2618 versuchen können, wird das wahrscheinlich zusammengeführt, aber Sie müssen die Transliteration selbst implementieren.

Die folgenden Aktionen wurden ab Version selected_v1.6.1 durchgeführt und Funktionen direkt auf selected.jquery.js eingefügt

Ich werde versuchen, das Kaffeeskript für die Integration so schnell wie möglich freizugeben.

Neue Optionen enable_escape_special_char ( true/false Standardwert false)

CODE:

this.enable_escape_special_char = this.options.enable_escape_special_char != null ? this.options.enable_escape_special_char : false;

eingefügt nach:
_this.enable_split_word_search = this.options.enable_split_word_search != null ? this.options.enable_split_word_search : true;
…_

AbstractChosen.prototype.winnow_results geändert

CODE-ERKLÄRUNG: Wenn option.search_match aber startpos < 0 bedeutet dies, dass eine Übereinstimmung gefunden wurde, dann versuchen Sie, Startpos mit gereinigtem String zu finden

CODE:

if(startpos < 0 && this.enable_escape_special_char){
                  startpos = this.escape_special_char(option.search_text).search(zregex);
}

eingefügt nach
_if (option.search_match) {
if (searchText.length) {
startpos = option.search_text.search(zregex);
..._

AbstractChosen.prototype.search_string_match geändert

CODE-ERKLÄRUNG: Test hinzugefügt, ob escape_special_char wahr ist, ersetzt if (regex.test(part))

CODE:

if (regex.test(part) || (this.enable_escape_special_char && regex.test(this.escape_special_char(parts[_i])))) {
              return true;
            }

eingefügt nach
_for (_i = 0, _len = Teilelänge; _i < _len; _i++) {
Teil = Teile[_i];
..._

AbstractChosen.prototype.get_list_special_char . hinzugefügt

CODE-ERKLÄRUNG: Gestartet von https://github.com/harvesthq/chosen/issues/536 refringe kommentiert am 2. April 2014

CODE:

AbstractChosen.prototype.get_list_special_char = function() {
      return [
          { val: "ae", let: "(ä|æ|ǽ)" },
          { val: "oe", let: "(ö|œ)" },
          { val: "ue", let: "(ü)" },
          { val: "Ae", let: "(Ä)" },
          { val: "Ue", let: "(Ü)" },
          { val: "Oe", let: "(Ö)" },
          { val: "AE", let: "(Æ|Ǽ)" },
          { val: "ss", let: "(ß)" },
          { val: "IJ", let: "(IJ)" },
          { val: "ij", let: "(ij)" },
          { val: "OE", let: "(Œ)" },
          { val: "A", let: "(À|Á|Â|Ã|Ä|Å|Ǻ|Ā|Ă|Ą|Ǎ)" },
          { val: "a", let: "(à|á|â|ã|å|ǻ|ā|ă|ą|ǎ|ª)" },
          { val: "C", let: "(Ç|Ć|Ĉ|Ċ|Č)" },
          { val: "c", let: "(ç|ć|ĉ|ċ|č)" },
          { val: "D", let: "(Ð|Ď|Đ)" },
          { val: "d", let: "(ð|ď|đ)" },
          { val: "E", let: "(È|É|Ê|Ë|Ē|Ĕ|Ė|Ę|Ě)" },
          { val: "e", let: "(è|é|ê|ë|ē|ĕ|ė|ę|ě)" },
          { val: "G", let: "(Ĝ|Ğ|Ġ|Ģ)" },
          { val: "g", let: "(ĝ|ğ|ġ|ģ)" },
          { val: "H", let: "(Ĥ|Ħ)" },
          { val: "h", let: "(ĥ|ħ)" },
          { val: "I", let: "(Ì|Í|Î|Ï|Ĩ|Ī|Ĭ|Ǐ|Į|İ)" },
          { val: "i", let: "(ì|í|î|ï|ĩ|ī|ĭ|ǐ|į|ı)" },
          { val: "J", let: "(Ĵ)" },
          { val: "j", let: "(ĵ)" },
          { val: "K", let: "(Ķ)" },
          { val: "k", let: "(ķ)" },
          { val: "L", let: "(Ĺ|Ļ|Ľ|Ŀ|Ł)" },
          { val: "l", let: "(ĺ|ļ|ľ|ŀ|ł)" },
          { val: "N", let: "(Ñ|Ń|Ņ|Ň)" },
          { val: "n", let: "(ñ|ń|ņ|ň|ʼn)" },
          { val: "O", let: "(Ò|Ó|Ô|Õ|Ō|Ŏ|Ǒ|Ő|Ơ|Ø|Ǿ)" },
          { val: "o", let: "(ò|ó|ô|õ|ō|ŏ|ǒ|ő|ơ|ø|ǿ|º)" },
          { val: "R", let: "(Ŕ|Ŗ|Ř)" },
          { val: "r", let: "(ŕ|ŗ|ř)" },
          { val: "S", let: "(Ś|Ŝ|Ş|Š)" },
          { val: "s", let: "(ś|ŝ|ş|š|ſ)" },
          { val: "T", let: "(Ţ|Ť|Ŧ)" },
          { val: "t", let: "(ţ|ť|ŧ)" },
          { val: "U", let: "(Ù|Ú|Û|Ũ|Ū|Ŭ|Ů|Ű|Ų|Ư|Ǔ|Ǖ|Ǘ|Ǚ|Ǜ)" },
          { val: "u", let: "(ù|ú|û|ũ|ū|ŭ|ů|ű|ų|ư|ǔ|ǖ|ǘ|ǚ|ǜ)" },
          { val: "Y", let: "(Ý|Ÿ|Ŷ)" },
          { val: "y", let: "(ý|ÿ|ŷ)" },
          { val: "W", let: "(Ŵ)" },
          { val: "w", let: "(ŵ)" },
          { val: "Z", let: "(Ź|Ż|Ž)" },
          { val: "z", let: "(ź|ż|ž)" },
          { val: "f", let: "(ƒ)" }
      ];
    };

eingefügt nach
_AbstractChosen.prototype.get_search_regex = function(escaped_search_string) {

};_

AbstractChosen.prototype.escape_special_char . hinzugefügt

CODE-ERKLÄRUNG: Gestartet von https://github.com/harvesthq/chosen/issues/536 felpaslkommentiert am 10. Oktober 2013

CODE:

AbstractChosen.prototype.escape_special_char = function (str) {
      var specialChars = this.get_list_special_char();
      for (var i = 0; i < specialChars.length; i++) {
          str = str.replace(new RegExp(specialChars[i].let, "g"), specialChars[i].val);
      }
      return str;
    };

eingefügt nach
_AbstractChosen.prototype.get_list_special_char = function() {

};_

@laulaz welche Rückruffunktion hast du verwendet? Ich kann die @hanoii- Version anscheinend nicht zum

BEARBEITEN: Entschuldigung, ich wusste nicht, dass ich normale Chosen verwende, nicht die von @hanoii . Funktioniert perfekt!

Eine andere schnelle und schmutzige Lösung, die ich verwende, besteht darin, die Sonderzeichen zu ersetzen, wenn ich das Auswahlfeld ausfülle, und dann die Methode winnow_results zu ändern, um die Sonderzeichen aus der Eingabe mit der gleichen Methode zu ersetzen, mit der ich die Daten bereinige Funktionen Ich ersetze nur eine Zeile

searchText = this.removeAccents(this.get_search_text());

Betrachtet man so etwas wie:

    AbstractChosen.prototype.removeAccents = function(_){
      return _
      .replace('Á','A')
      .replace('É','E')
      .replace('Í','I')
      .replace('Ó','O')
      .replace('Ú','U')
      .replace('á','a')
      .replace('é','e')
      .replace('í','i')
      .replace('ó','o')
      .replace('ú','u');
    };

oder welche Zeichen Sie auch zuordnen müssen

Das interessiert mich sehr. Ich habe gesehen, dass es einen Pull-Request gibt, der sich mit dem Thema beschäftigt.
Gibt es Neuigkeiten zu dieser Anfrage?

Nun, ich verspreche jedem Entwickler, der eine akzentunabhängige Suchoption in diese Bibliothek bekommt, etwas Biergeld. Vielleicht möchten andere zu meinem Versprechen hinzufügen..? Sieht so aus, als ob es definitiv viele Leute gibt, die damit zu kämpfen haben

Scheint, als ob es ab Version 1.8.2 angefangen hat, richtig mit Ö und etc. Zeichen zu funktionieren.

@seyfer Um das Problem zu verdeutlichen, sollte Chosen mit Charakteren wie Ö gut funktionieren. Bei diesem Problem geht es speziell darum, nach etwas wie Ömega suchen zu können, indem die Suchzeichenfolge Omega ohne Akzent verwendet wird. Das funktioniert in Chosen immer noch nicht.

Ich denke, dass dieses Thema an dieser Stelle zugunsten von #2618 geschlossen werden sollte. @eagle779 Obwohl ich mich über das Biergeld @tjschuck gehen, auch wenn dies nicht hinzugefügt wird. Was die #2618 betrifft, würde ich mich immer noch freuen, wenn sie in die Bibliothek aufgenommen würde.

@hanoii Dieses Problem vs. #2618 geht in die feine Abgrenzung zwischen "Problem" und "PR". Diese PR behebt dieses Problem, aber eine andere PR könnte theoretisch auch. Ich bin damit einverstanden, dieses Thema als Problembeschreibung zu belassen und PRs Lösungen für Probleme zu lassen.

Das heißt, ja, #2618 könnte eine Lösung für dieses Problem sein. Ich habe diese PR gestoßen, weil wir anscheinend ziemlich weit fortgeschritten waren, uns darauf zu einigen, bevor sie an Schwung verlor. Leider passiert das manchmal ¯\_(ツ)_/¯

Was das Biergeld angeht , denke ich, dass alle Chosen-Betreuer ziemlich gut auf Bier eingestellt sind (und

Was das Biergeld angeht, sollten wir irgendwann eine Chosen-Jubiläumsparty veranstalten 😄

Wir haben unser Problem umgangen, indem wir Code von Drittanbietern in die
Bibliothek, aber ich bin immer noch bereit, etwas Biergeld bereitzustellen, wenn das so ist?
getan? Ich glaube aber nicht, dass es so ist?

Das heißt, wir suchen auch nach dem Ersatz ausgewählter in unserem gesamten Projekt
weil wir in der Lage sein müssen, die Ausgabe mit Vorlagen zu versehen und zu stylen, so etwas wie
wie https://selectize.github.io/selectize.js oder https://select2.org/dropdown
oder http://silviomoreto.github.io/bootstrap-select macht es. wieder würde es
Es macht Sinn für uns, einfach jemanden zu sponsern, um ihm eine Vorlagenausgabe hinzuzufügen
Feature zur Bibliothek... nennen Sie einfach Ihren $-Preis.

Danke schön

Am Dienstag, den 28. November 2017 um 20:23 Uhr schrieb Koen Punt [email protected] :

Was das Biergeld angeht, sollten wir irgendwann eine Chosen-Jubiläumsparty veranstalten 😄


Sie erhalten dies, weil Sie erwähnt wurden.
Antworten Sie direkt auf diese E-Mail und zeigen Sie sie auf GitHub an
https://github.com/harvesthq/chosen/issues/536#issuecomment-347435859 ,
oder den Thread stumm schalten
https://github.com/notifications/unsubscribe-auth/AMylrptuqHc-0waqy7L8QlPORccRMon2ks5s67T3gaJpZM4AC4UC
.

+1

+1

Am Ende des Tages war die einfachste Lösung die 2 Jahre alte https://github.com/hanoii/chosen/releases/tag/v1.4.3-hanoii
Schätzen Sie die harte Arbeit, die geleistet wurde, aber dieses Problem betrifft viele Menschen und sollte mehr Aufmerksamkeit erhalten.

fügen Sie diese Zeile einfach zu selected.js hinzu t.prototype.search_string_match=function(t,e){var s; var t=t.normalize("NFD")

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen