当字符编码不同时,从键盘搜索选项
searching option from keyboard when different character encoding
我有一个select标签,在格鲁吉亚有选项:
<select>
<option value="1"> პირველი </option>
<option value="2"> მეორე </option>
<option value="3"> მესამე </option>
</select>
当我展开选择标签并按键盘上的"
我的键盘上没有格鲁吉亚字符,但至少我懂俄语:
HTML:<select id="select">
<option value="0">Ноль</option>
<option value="1">Один</option>
<option value="2">Два</option>
<option value="3">Три</option>
<option value="4">Четыре</option>
<option value="5">Пять</option>
<option value="6">Шесть</option>
<option value="7">Семь</option>
<option value="8">Восемь</option>
<option value="9">Девять</option>
</select>
JS:
document.getElementById('select').addEventListener('keypress', function (event) {
var length = this.options.length;
var char = String.fromCharCode(event.which);
var keys = {
a: 'ф',
b: 'и',
c: 'с',
d: 'в',
e: 'у',
f: 'а',
g: 'п',
h: 'р',
i: 'ш',
j: 'о',
k: 'л',
l: 'д',
m: 'ь',
n: 'т',
o: 'щ',
p: 'з',
q: 'й',
r: 'к',
s: 'ы',
t: 'е',
u: 'г',
v: 'м',
w: 'ц',
x: 'ч',
y: 'н',
z: 'я',
'[': 'х',
']': 'ъ',
';': 'ж',
'''': 'э',
',': 'б',
'.': 'ю',
'/': '.',
};
var key = keys[char];
for (var i = 0; i < length; i++) {
if (this.options[i].innerHTML.charAt(0).toLowerCase() === key) {
this.selectedIndex = i;
break;
}
}
});
和一个工作示例:http://jsfiddle.net/wdSQv/1/(在Firefox 20中测试)
相关文章:
- 用程序搜索JQuery数据表中的文本
- 在html Select中添加搜索
- Ajax Live搜索发布到Laravel视图
- 谷歌放置API:按国家或餐馆名称搜索餐馆
- 学生搜索项目jquery/javascript
- 用于搜索的聚合物嵌套绑定
- 在javascript中搜索具有重复值的两个数组中的匹配值
- Angularjs-utils高亮过滤器在搜索时破坏应用程序
- 使用javascript搜索具有用户输入的数组
- 淘汰搜索/筛选
- 搜索api在mac上显示对话框
- AngularJS/HTML/Bootstrap元素用于动态搜索结果
- 谷歌水印未显示在自定义搜索框中
- 在javascript中搜索项目列表的性能
- 正在搜索JavaScript日期选择器滑块
- 键盘友好的 AJAX 搜索
- 如何在不隐藏键盘的情况下清除输入搜索?(手机)
- Facebook喜欢Ajax搜索 - 如何使用键盘浏览结果
- Framework7 -搜索栏关闭键盘
- 当字符编码不同时,从键盘搜索选项