- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
http://www.bulgaria-web-developers.com/projects/javascript/selectbox/
是否有任何“按键”事件,以便用户可以跳转到特定选项?就像我们有国家/地区字段并且用户想要搬到英国,那么他需要滚动以在列表中查找英国。
最佳答案
基于 Suresh Atta 解决方案,我创建了以下 jquery 扩展来实现解决方案
/*** EXTEND SELECT BOX TO HAVE KeyUp feature *********/
jQuery.fn.KeyUpSelectBox = function (options)
{
var myHandler = this;
this.init = function ()
{
var sb = $(this).selectbox(options);
var sbSelector = sb.attr('sb');
$("#sbHolder_" + sbSelector).on('keyup', function (e)
{
var currentOptionText = $("#sbSelector_" + sbSelector).text().toLowerI();
var keyText = String.fromCharCode(e.keyCode).toLowerI();
var selectOptions = myHandler.find('option');
var firstIndexWithLetter = -1;
var bSet = false;
var moveToNext = false;
var bFoundOption = false;
if (currentOptionText.substring(0, 1) == keyText)
{
moveToNext = true;
}
for (var i = 0; i < selectOptions.length; i++)
{
var optionText = $(selectOptions[i]).text().toLowerI();
//console.log(optionText + ': ' + optionText.substring(0, 1));
if (optionText.substring(0, 1) == keyText)
{
if (moveToNext)
{
if (firstIndexWithLetter == -1) { firstIndexWithLetter = i; }
if (bFoundOption)
{
sb.selectbox("change", $(selectOptions[i]).attr('value'), $(selectOptions[i]).html());
sb.val($(selectOptions[i]).attr('value'));
bSet = true;
break;
}
if (optionText == currentOptionText)
{
bFoundOption = true;
}
}
else
{
sb.selectbox("change", $(selectOptions[i]).attr('value'), $(selectOptions[i]).html());
sb.val($(selectOptions[i]).attr('value'));
break;
}
}
}
if (moveToNext && !bSet && (firstIndexWithLetter != -1))
{
sb.selectbox("change", $(selectOptions[firstIndexWithLetter]).attr('value'), $(selectOptions[firstIndexWithLetter]).html());
sb.val($(selectOptions[firstIndexWithLetter]).attr('value'));
}
});
}
myHandler.init();
return myHandler;
}
此扩展使用名为 toLowerI 的方法,它是一个字符串原型(prototype):
var patternLetters = /[öäüÖÄÜáàâéèêúùûóòôÁÀÂÉÈÊÚÙÛÓÒÔßãÃõÕçÇñÑ]/g;
var patternDateDmy = /^(?:\D+)?(\d{1,2})\.(\d{1,2})\.(\d{2,4})$/;
var lookupLetters = {
"ä": "a", "ö": "o", "ü": "u",
"Ä": "A", "Ö": "O", "Ü": "U",
"á": "a", "à": "a", "â": "a",
"é": "e", "è": "e", "ê": "e",
"ú": "u", "ù": "u", "û": "u",
"ó": "o", "ò": "o", "ô": "o",
"Á": "A", "À": "A", "Â": "A",
"É": "E", "È": "E", "Ê": "E",
"Ú": "U", "Ù": "U", "Û": "U",
"Ó": "O", "Ò": "O", "Ô": "O",
"ß": "s", "ã": "a", "Ã": "A",
"õ": "o", "Õ": "O", "ç": "c",
"Ç": "C", "ñ": "n", "Ñ": "N"
};
var letterTranslator = function (match)
{
return lookupLetters[match] || match;
}
String.prototype.toLowerI = function ()
{
return this.toLowerCase().replace(patternLetters, letterTranslator);
};
要使用它,请调用 .KeyUpSelectBox(),而不是调用 .selectbox()
关于jQuery SelectBox 插件按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14497868/
这个问题已经有答案了: select all options in html select dynamically (3 个回答) 已关闭 6 年前。 我有两个像这样的小选择框: 我添加了一个小的 J
我正在使用 http://www.bulgaria-web-developers.com/projects/javascript/selectbox/ 中的选择框 jQuery 插件。 我还有一个链接
http://www.bulgaria-web-developers.com/projects/javascript/selectbox/ 是否有任何“按键”事件,以便用户可以跳转到特定选项?就像我们
我有一个表 teamtrack_activity,其中包含 id 和 Activity_name。 我有一个表 teamtrack_entry,其中包含所有团队每日条目。该表有一个字段“activit
我试图设置两个 select-boxes从第一个选择框中选择一个选项后启用第二个选择框即可工作。 结果来自带有 js 的 json 到我页面上的 div。 第二个选择设置为 disabled 第一次尝
我正在寻找通过右键单击鼠标右键打开下拉列表的解决方案。 更多详情: 1) 使用ajax显示MySQL表 2) 我选择一行 3)我在行上单击鼠标右键 4) 我看到一个小的选择框列表,其中包含编辑此行的选
function myf() { alert("coming dude"); var numbersString = "1,2,3,4,5,6"; var data = numbersStri
昨天我成功地在数组中添加了新元素,但现在我陷入困境,因为当我尝试在下拉框中显示这些元素时,每次在数组中添加新元素时,它都会再次将整个数组添加到列表中,而不仅仅是用户在数组中添加的新元素。 这是我的代码
现在,如果我提交表单并且出现错误,它只会显示存在错误,而无需重新选择存在错误的项目(该页面称为“更改项目”),您可以在此处更改以下值某个项目。 附注在我发布的图片中,您可以看到我专门输入了一个字符串“
我有一个包含三个选项的选择框。当用户选择三个选项之一时,我希望在其下方显示一个特定的 div。我正在尝试编写代码来指示在选择三个选项中的每一个时要显示哪个特定框。到目前为止,我只研究了与第一个选项相关
我用过这种插件。 https://github.com/marcj/jquery-selectBox 但是这个插件的功能很好。但问题是选择下拉菜单在平板电脑和移动设备上看起来不太好。 我用过这个代码。
这是一个选择框(我已经使用和修改)。当我单击选择框时,它会变成文本输入并显示工字梁。只是想禁用此工字梁。我怎样才能得到它? Check JSfiddle 这是 html: option1
您好,我想要执行以下操作: 我有一个选择框,当我在更改产品的过程中单击页码时效果很好,我现在要做的是单击选择框图标自动前进到下一个值(页面)。 这是我的选择框,工作正常: page
我正在编写一个 PhoneGap 应用程序并使用 Twitter 的 Bootstrap 进行响应式设计。 校园/帐户/部门的框是选择框。我认为很明显的问题是选择框很小,当我在 css 中尝试时无法更
全部, 我以前成功使用过多选,但是当我尝试这个我作为 POC 尝试的特定示例时,行为非常奇怪。本质上,我想要做的是使用多选让应用程序在中间步骤等待用户输入。但是,multiselect 不会等我选择我
如何在页面加载时在其选择框中预先选择标签?到目前为止,这是我的代码: HTML: Windows OSX Linux JS: $(".operatingSystems").
我使用下面的代码从下拉列表中选择选项,但我得到: Uncaught TypeError: $(...).selectBox is not a function. 在控制台中。我将使用jquery-se
我有以下选择框 -- PLEASE SELECT -- -- ADD NEW -- Smith Company Jones Company Wright Company 页面上有多个 loc_id
如果 mysql db 值 12 [此值不重要] 在选择框上并且仅使用 PHP 和 HTML(而不是 javascript 等),我想不显示任何内容 我使用此代码进行显示:none; optionse
我在地址表单输入上有自动完成功能。当用户点击建议时,州和邮政编码信息会自动填充。cp_state 是带有状态名称下拉列表的选择框,而cp_zipcode 是邮政编码的输入文本。 我使用下面的 java
我是一名优秀的程序员,十分优秀!