Php 是否有一种干净的HTML方法将按键与下拉项关联起来
我正在开发一个应用程序,希望能够快速输入数据。因此,我想创建一个日期字段,该字段由int month值(即7=July)选择。我想我只有两个选择Php 是否有一种干净的HTML方法将按键与下拉项关联起来,php,jquery,html,Php,Jquery,Html,我正在开发一个应用程序,希望能够快速输入数据。因此,我想创建一个日期字段,该字段由int month值(即7=July)选择。我想我只有两个选择 将数字预编到月份(1--1月,2--2月,…等),但这很难看 使用JS或jQuery截取按键并选择适当的月份(可行,但混乱) 有没有一种方法可以为降落设置一个隐藏的定位器 --为清晰起见编辑-- 我试图让用户通过键盘输入日期更容易,这样他们就不用使用日历选择器(我有)来输入日期了。。。。1 tab 1 tab 2010,它将产生2010年1月1日的日期
我试图让用户通过键盘输入日期更容易,这样他们就不用使用日历选择器(我有)来输入日期了。。。。1 tab 1 tab 2010,它将产生2010年1月1日的日期HTML中有一个
accesskey
属性,允许使用[Alt]+字符指定允许访问。但我不知道这是否适用于
:
一月
以下是一个如何使其工作的示例:
$(function()
{
$.each($("select.month"), function() { new MonthSelector(this); });
});
var MonthSelector = function(that)
{
var self = this;
$(that).bind("keypress", function(event) { self.onKeyPress(event); } );
this.two = false;
this.select = that;
};
MonthSelector.prototype.onKeyPress = function(event)
{
if (event.which < 48 || event.which > 57) return;
var digit = event.which - 48;
if (this.two && digit <= 2)
{
digit += 10;
this.two = false;
}
else
{
this.two = (digit == 1);
}
if (digit != 0)
this.select.selectedIndex = digit - 1;
};
$(函数()
{
$.each($(“select.month”),function(){newmonthselector(this);});
});
var MonthSelector=函数(该函数)
{
var self=这个;
$(that.bind(“keypress”,函数(事件){self.onKeyPress(事件);});
2=错误;
this.select=that;
};
MonthSelector.prototype.onKeyPress=功能(事件)
{
if(event.which<48 | | event.which>57)返回;
var数字=事件-48;
if(this.two&&digit你可以用javascript轻松完成。只需检查所选下拉框(onfocus)和按键,如果按1,则选择第一个元素,2秒,依此类推。如果有多个数字,可能还需要添加一些延迟并等待第二次按键
或者,您可以尝试一些非标准的产品:
<label for="state">State:</label>
<select id="state" name="state">
<option accesskey="1">.1.</option>
<option accesskey="2">.2.</option>
<option accesskey="3">.3.</option>
<option accesskey="4">.4.</option>
</select>
状态:
1.
2.
3.
4.
通过按Alt+Number,您将能够在下拉列表中选择元素。只需将accesskey
属性动态添加到选项(JavaScript)点击你的重点下拉框。如果你按键盘,你必须想出一种方法来选择11月和12月,因为它们是两位数。正如你所说,这会变得很混乱。我建议使用自动完成,因为一个月的两个字母应该足以选择它。你在问/试图解决什么问题?这可以写得更好向sworoc发送操作系统,以获得回复!问题是:您需要选择吗?一个普通的输入字段可以包含“Jan”、“Jan”、“januar”、“1”、“01”,您可以在空闲时对其进行解释。我快速浏览了一些旅游网站,似乎大多数网站都预先填充了一个带有数字格式日期的文本框(2011年1月1日)这会提示他们的用户以他们期望的格式更改日期。您选择多个选项而不是这种更常见的实现的动机是什么?也就是说,在大多数浏览器中,您可以选择一个文本框,然后开始键入,它将转到最接近的匹配项。我发现这对于长时间的日期列表特别有用。-1如果我的答案被偷了,我真的很不感激。如果你将答案回滚到原始形式,我将恢复我的投票。它不是标准的,因为它不在w3标准中(duh!)而且它不能保证在不同的web浏览器中工作。被盗了?你多大了,10岁?这不是一场比赛,我很确定所有的评论都是在同一时间发布的,所以我在键入时甚至没有看到你的回复。顺便提一下,以下元素支持accesskey属性:a、区域、按钮、输入、标签、图例和文本区域。来自HTML规范:“以下元素支持accesskey属性:A、区域、按钮、输入、标签和图例以及TEXTAREA。”但无论如何,这对10月至12月以及同一页面上有多个日期框都不起作用。@konforce:也允许在其他元素上使用此属性,这不是问题。问题是浏览器是否为下拉菜单实现此功能;)但是,是的,您是对的,显然,如果在一个页面上选择多个月,此操作将失败。
<label for="state">State:</label>
<select id="state" name="state">
<option accesskey="1">.1.</option>
<option accesskey="2">.2.</option>
<option accesskey="3">.3.</option>
<option accesskey="4">.4.</option>
</select>