Chosen: mendukung karakter dengan aksen

Dibuat pada 21 Mar 2012  ·  51Komentar  ·  Sumber: harvesthq/chosen

jika Anda memiliki item di dropdown yang disebut "testé"
akan menyenangkan untuk dapat mengetik "teste" untuk menemukannya.
sekarang tidak menemukannya karena over the e
mungkinkah yang dipilih bisa menghilangkan semua aksen itu terlebih dahulu?

Feature Request Search

Komentar yang paling membantu

sry @tjschuck untuk duplikat posting

Saya menemukan masalah yang sama dan mengembangkan sloution saya http://fiddle.jshell.net/whqb5/1/

item 'Republik Demokratik Kongo' dipilih dengan pencarian 'republik Kongo' dalam urutan apa pun dalam metode saya, simpan file dalam UTF-8 untuk string karakter khusus "(Á|À|Ã|Â|Ä|á|à|ã |â|ä|a|A)".

sory untuk bahasa inggris saya yang buruk,

"Saya mengalami masalah yang sama dalam mengembangkan solusi saya http://fiddle.jshell.net/whqb5/1/

Pencarian menggunakan semua kata yang diketik dalam urutan apa pun dengan atau tanpa aksen"

*edit versi baru

    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;
        }
    };

Semua 51 komentar

Saya setuju dengan gemal.

Saya sudah menemukan fungsi untuk itu, jika saya hanya bisa menghubungkan pencarian yang dipilih ke fungsi khusus (seperti yang dilakukan jstree, misalnya: http://www.jstree.com/documentation/search).

Fungsi ini menghapus semua diakritik dari string dan menggantinya dengan padanan yang dinormalisasi.
Ini kodenya: http://lehelk.com/2011/05/06/script-to-remove-diacritics/

Fungsi yang melakukan ini adalah Chosen.prototype.winnow_results. Agak sulit untuk bergulat dengan ekspresi reguler :/

Ini dapat berguna dan terkait dengan masalah ini: https://github.com/harvethq/chosen/pull/628

+1

+1

Saya memodifikasi metode Chosen.prototype.winnow_results untuk membersihkan aksen string pencarian sebelum mencari, bukan kode terbaik saya, tetapi berfungsi seperti yang diharapkan:

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();
      }
    };

Siap untuk menggunakan:

(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

Lipat kasing Unicode akan bagus, +1.

+1

sry @tjschuck untuk duplikat posting

Saya menemukan masalah yang sama dan mengembangkan sloution saya http://fiddle.jshell.net/whqb5/1/

item 'Republik Demokratik Kongo' dipilih dengan pencarian 'republik Kongo' dalam urutan apa pun dalam metode saya, simpan file dalam UTF-8 untuk string karakter khusus "(Á|À|Ã|Â|Ä|á|à|ã |â|ä|a|A)".

sory untuk bahasa inggris saya yang buruk,

"Saya mengalami masalah yang sama dalam mengembangkan solusi saya http://fiddle.jshell.net/whqb5/1/

Pencarian menggunakan semua kata yang diketik dalam urutan apa pun dengan atau tanpa aksen"

*edit versi baru

    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 bisakah Anda menyiapkan PR untuk ini? Terima kasih!

+1

+1

@manuelv @Keeguon mungkin Anda harus memeriksa ini: http://brianreavis.github.io/selectize.js/

Saya baru saja menerapkan solusi felpasl (disebutkan 5 komentar di atas) & tampaknya berfungsi dengan baik.

peringatan: ingat untuk menyimpan "chosen.jquery.js" yang dimodifikasi di UTF8 seperti yang ditunjukkan oleh felpasl.

Saya suka versi yang dibuat @felpasl , tapi bagaimana kalau lebih banyak 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: "(ƒ)" }
];

Kehilangan hal lain?

@refringe Sepertinya sesuatu yang terbaik diserahkan ke perpustakaan terpisah, yang satu-satunya perhatian adalah jenis Latinisasi ini -- sesuatu seperti https://github.com/dundalek/latinize atau http://semplicewebsites.com/removing-accents- javascript.

@tjschuck Setuju! Hanya melihat sebentar melalui kode latinisasi itu... Saya sudah dapat mengatakan bahwa saya telah melewatkan beberapa. Terlepas dari itu, saya pikir pembaruan perlu menyertakan lebih banyak karakter unicode untuk dinormalisasi.

Sebenarnya, peta yang disebutkan @zavan di atas sangat dekat dengan apa yang digunakan latinize di sini:
http://jsperf.com/latinize

Saya suka.

+1

Tidak yakin apakah terkait: Jika opsi menyertakan pertanyaan dalam bahasa Spanyol, yang didahului dengan tanda tanya pembuka ('¿'), kata pertama tidak akan cocok. Contoh: opsi: "¿Como estás?" -> "estás" sedang ditemukan, tetapi bukan "Como".

@dgilperez Masalah khusus itu https://github.com/harvethq/chosen/pull/1483 sebagai gantinya.

Ada berita?

Berikut ini adalah pertanyaan SO yang sangat menarik terkait dengan topik ini: http://stackoverflow.com/questions/990904/javascript-remove-accents-diacritics-in-strings

Saya benar-benar menggunakan solusi yang disebutkan dalam jawaban yang saat ini diterima di beberapa proyek profesional & berfungsi dengan baik.

Ini menggunakan Unicode Standard untuk mengkodekan karakter dengan diakritik ke karakter yang sama tanpa diakritik. Anda mungkin ingin memperluas solusi yang diberikan ke skrip/bahasa lain (seharusnya cukup mudah kecuali Anda perlu mendukung dalam jumlah besar).

Lihat komentar di jawaban SO untuk detail lebih lanjut tentang cara melakukan ini.

@tjschuck Saya setuju, itu adalah sesuatu yang mungkin harus diserahkan ke perpustakaan khusus. Saya sedang mempertimbangkan untuk menyelam ke tahun depan ini, hubungi saya jika tertarik untuk bergabung dengan kesenangan.

Apakah seseorang bekerja pada dukungan untuk ini?

mengapa ini bukan fitur resmi dari plugin ini?

+1

+1

Lihat untuk dukungan bahasa kode Hex.
ini berfungsi dengan baik untuk saya pada 1.4.2 yang dipilih

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
akan lebih baik untuk memasukkannya ke dalam pilihan itu sendiri, daripada meretas kodenya
buruk saya, saya tidak memeriksa apakah sudah ada masalah terbuka tentang itu

+1

+1

@tjschuck jika saya memasukkan latinize, bagaimana cara menambahkannya dan menggunakannya dengan npm, dll. Saya akan mencoba membuat ini berfungsi dan saya akan melihat-lihat bagaimana melakukannya, tetapi jika Anda dapat membagikan pointer apa pun, itu akan sangat membantu.

Yah, aku mencobanya. Saya baru saja membuat permintaan tarik dengan dukungan untuk ini. Layak untuk diuji dan dikomentari.

Karena permintaan tarik memodifikasi skrip kopi, saya merilis versi uji di

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

Unduh v1.4.3-hanoii dan uji. Tidak yakin apakah ini cara terbaik untuk membantu meninjau, tetapi mungkin tidak jauh.

Rilis @hanoii yang diuji, sangat cocok untuk saya!
Silakan gabungkan di master.

Jika Anda dapat mencoba #2618 yang kemungkinan akan digabungkan tetapi Anda harus mengimplementasikan transliterasinya sendiri.

Tindakan berikut telah dilakukan mulai dari versi selected_v1.6.1 dan langsung menyisipkan fungsi pada selected.jquery.js

Saya akan mencoba untuk merilis skrip kopi untuk integrasi ASAP.

Opsi baru enable_escape_special_char ( true/false nilai default false)

KODE:

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

dimasukkan setelah:
_this.enable_split_word_search = this.options.enable_split_word_search != null ? this.options.enable_split_word_search : benar;
…_

Mengubah AbstractChosen.prototype.winnow_results

PENJELASAN KODE: jika option.search_match tetapi startpos < 0 itu berarti telah ditemukan kecocokan maka coba cari startpos dengan string yang dibersihkan

KODE:

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

dimasukkan setelah
_if (option.search_match) {
if (searchText.length) {
startpos = option.search_text.search(zregex);
..._

Mengubah AbstractChosen.prototype.search_string_match

PENJELASAN KODE: tes tambahan jika escape_special_char benar menggantikan if (regex.test(part))

KODE:

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

dimasukkan setelah
_for (_i = 0, _len = bagian.panjang; _i < _len; _i++) {
bagian = bagian[_i];
..._

Menambahkan AbstractChosen.prototype.get_list_special_char

PENJELASAN KODE: Dimulai dari https://github.com/harvethq/chosen/issues/536 refringe berkomentar pada 2 Apr 2014

KODE:

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: "(ƒ)" }
      ];
    };

dimasukkan setelah
_AbstractChosen.prototype.get_search_regex = function(escaped_search_string) {

};_

Menambahkan AbstractChosen.prototype.escape_special_char

PENJELASAN KODE: Dimulai dari https://github.com/harvethq/chosen/issues/536 felpasldikomentari pada 10 Okt 2013

KODE:

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;
    };

dimasukkan setelah
_AbstractChosen.prototype.get_list_special_char = function() {

};_

@laulaz fungsi panggilan balik apa yang Anda gunakan? Sepertinya saya tidak bisa membuat versi @hanoii berfungsi untuk saya.

EDIT: Maaf, saya tidak menyadari bahwa saya menggunakan Terpilih biasa, bukan @hanoii 's. Bekerja dengan sempurna!

Perbaikan cepat dan kotor lainnya yang saya gunakan adalah mengganti karakter spesial ketika saya mengisi kotak pilih dan kemudian memodifikasi metode winnow_results untuk mengganti karakter khusus dari input dengan metode yang sama saya "membersihkan data" menggunakan ini fungsi Saya hanya mengganti satu baris

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

Mengingat sesuatu seperti:

    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');
    };

atau karakter apa pun yang Anda butuhkan untuk dipetakan

Itu sangat menarik minat saya. Saya melihat ada permintaan tarik yang berhubungan dengan subjek.
Ada kabar tentang permintaan ini?

Yah, saya akan menjanjikan sejumlah $ bir uang untuk pengembang mana pun yang akan mendapatkan opsi pencarian tidak sensitif aksen ke perpustakaan ini. Mungkin yang lain ingin menambah ikrar saya..? Sepertinya pasti ada banyak orang yang berjuang dengan ini

Sepertinya dari versi 1.8.2 itu mulai bekerja dengan baik dengan Ö dan lain-lain karakter.

@seyfer Hanya untuk memperjelas masalah ini, Terpilih harus bekerja dengan baik dengan karakter seperti Ö. Masalah ini secara khusus tentang keinginan untuk dapat mencari sesuatu seperti Ömega dengan menggunakan string pencarian Omega , tanpa aksen. Itu masih tidak berfungsi di Terpilih.

Saya pikir masalah ini, pada titik ini, harus ditutup demi #2618. @eagle779 meskipun saya menghargai uang bir, itu harus pergi ke @tjschuck , bahkan jika ini tidak ditambahkan. Adapun #2618 saya masih ingin memasukkannya ke perpustakaan.

@hanoii Masalah ini vs. #2618 masuk ke penggambaran yang bagus antara "masalah" dan "PR". PR itu memperbaiki masalah ini, tetapi PR lain secara teoritis juga bisa. Saya baik-baik saja dengan menjaga masalah ini sebagai pernyataan masalah, dan membiarkan PR menjadi solusi untuk masalah.

Yang mengatakan, ya, #2618 bisa menjadi solusi untuk masalah ini. Saya telah menabrak PR itu, karena kami tampaknya cukup jauh untuk menyetujuinya sebelum kehilangan momentum. Sayangnya, itu kadang terjadi \_(ツ)_/¯

Untuk uang bir, saya pikir semua pengelola Terpilih cukup siap untuk bir (dan @adunkman dan saya kebanyakan hanya minum koktail), tapi terima kasih atas

Untuk uang bir, kita harus mengadakan pesta ulang tahun Terpilih kapan-kapan

kami mengatasi masalah kami dengan menambal beberapa kode pihak ketiga ke dalam
perpustakaan tetapi saya benar-benar masih siap untuk memberikan uang bir jika ini
selesai? Saya tidak percaya itu meskipun?

yang mengatakan kami juga mencari penggantian yang dipilih di seluruh proyek kami
karena kita harus bisa membuat template dan menata output, seperti
caranya https://selectize.github.io/selectize.js atau https://select2.org/dropdown
atau http://silviomoreto.github.io/bootstrap-select melakukannya. lagi itu akan
masuk akal bagi kita untuk hanya mensponsori seseorang untuk menambahkannya sebagai output template
fitur ke perpustakaan... sebutkan saja harga $ Anda.

Bersulang

Pada Selasa, 28 November 2017 pukul 20:23, Koen Punt [email protected] menulis:

Untuk uang bir, kita harus mengadakan pesta ulang tahun Terpilih kapan-kapan


Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/harvethq/chosen/issues/536#issuecomment-347435859 ,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AMylrptuqHc-0waqy7L8QlPORccRMon2ks5s67T3gaJpZM4AC4UC
.

+1

+1

Pada akhirnya, solusi termudah adalah menggunakan https://github.com/hanoii/chosen/releases/tag/v1.4.3-hanoii yang berusia 2 tahun
Hargai kerja keras yang dilakukan, tetapi masalah ini memengaruhi banyak orang dan harus mendapat perhatian lebih.

tambahkan saja baris ini ke selected.js t.prototype.search_string_match=function(t,e){var s; var t=t.normalisasi("NFD")

Apakah halaman ini membantu?
0 / 5 - 0 peringkat