HTML 选择快捷键覆盖

发布于 2024-09-14 12:09:07 字数 499 浏览 3 评论 0原文

我有一个下拉列表(HTML 选择元素),其中仅包含一堆美元金额。例如

$50,000

$100,000

$150,000

$200,000

等等。

其中的选项元素之一的示例是:

<option value="150000">$150,000</option>

我希望用户能够开始输入 1..5..0.. 并使其自动跳转低至 150,000 美元的项目 - 如果我的 insidehtml 中没有任何 $ 符号,那么这在大多数浏览器中都可以正常工作。但是因为我所有的内部 HTML 描述都以 $ 符号为前缀,所以键盘快捷键都是相同的,所以实际上毫无用处。

我假设原始 HTML 中没有简单的方法来指定应该从相应的 value 属性而不是内部 HTML 文本获取键盘快捷键?

那么实现这一点的最干净的 jquery 片段是什么?

I have dropdown list (HTML select element) which simply contains a heap of dollar amounts. E.g.

$50,000

$100,000

$150,000

$200,000

and so on..

An example of one of the option elements inside it would be:

<option value="150000">$150,000</option>

I want the user to be able to start typing in 1..5..0.. and get it to auto-jump down to the $150,000 item - this works fine natively in most browsers if I didn't have any $ symbol in my innerhtml. But because all of my innerhtml descriptions are prefixed with a $ sign, the keyboard shortcuts are all identical, so effectively useless.

I'm assuming there is no simple way in raw HTML to specify that the keyboard shortcuts should be obtained from the corresponding value attribute, rather than the innerhtml text?

So what would be the cleanest jquery snippet to achieve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

摘星┃星的人 2024-09-21 12:09:07

如果可能的话,我只需将 $ 放在下拉菜单前面。这将是最不痛苦的方法。

如果这不是一个选项,您可以考虑使用包含每个选项$符号的background-image

select.dollar option { background-image: url(...); 
                       background-position: left center; 
                       background-repeat: no-repeat;
                       padding-left: 20px;
                      }

浏览器对此的支持非常多,但是非常脆弱 - 它可能只能在每个系列的最新版本中工作。它可能根本不适用于 IE,我没有方便的概述。而且,这种方式也不利于今后的国际化。

除此之外,我认为您必须求助于基于 JavaScript 的自定义下拉菜单。

If at all possible, I would simply put the $ in front of the drop down menu. That would be the least painful way.

If that is not an option, you could consider using a background-image containing a $ sign for each option:

select.dollar option { background-image: url(...); 
                       background-position: left center; 
                       background-repeat: no-repeat;
                       padding-left: 20px;
                      }

browser support for that is very, very flaky, though - it would work probably only in the very newest version of each family. It may not work in IE at all, I don't have an overview handy. Also, this way is not good for future internationalization.

Other than that, I think you would have to resort to a JavaScript based custom drop-down.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文