Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否有一种干净的HTML方法将按键与下拉项关联起来_Php_Jquery_Html - Fatal编程技术网

Php 是否有一种干净的HTML方法将按键与下拉项关联起来

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日的日期

我正在开发一个应用程序,希望能够快速输入数据。因此,我想创建一个日期字段,该字段由int month值(即7=July)选择。我想我只有两个选择

  • 将数字预编到月份(1--1月,2--2月,…等),但这很难看
  • 使用JS或jQuery截取按键并选择适当的月份(可行,但混乱)
  • 有没有一种方法可以为降落设置一个隐藏的定位器

    --为清晰起见编辑--


    我试图让用户通过键盘输入日期更容易,这样他们就不用使用日历选择器(我有)来输入日期了。。。。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>