【问题标题】:Adding special characters to number input在数字输入中添加特殊字符
【发布时间】:2016-07-20 16:11:03
【问题描述】:

我正在尝试创建一个 HTML 持续时间(不是一天中的时间)输入字段,即 HH:MM,我希望它能够触发移动设备上的数字键盘。

<input type="number" /> 似乎是实现这一目标的唯一可靠方法。但我要求它接受冒号:

有没有办法强制数字输入字段接受额外的特殊字符?

【问题讨论】:

  • 为什么不使用专为这种输入而构建的 TimePicker?
  • 时间选择器用于一天中的时间,例如下午 12:45 - 我只想要特别小时和分钟作为持续时间,例如。这个任务要5小时30分钟才能完成。上午/下午在那里没有多大意义。
  • 您可以将拾取器置于 24 小时模式,这会移除 AM/PM 指示器。如果您不需要超过 23 小时的时间,可能会很好。
  • 是否有可靠的方法强制 24 小时?我还没找到。
  • TimePicker 上有一个 API 方法可以设置该模式。我无法谈论它的可靠性,但我找不到任何迹象表明它是片状的。

标签: javascript html mobile


【解决方案1】:

据我所知,这是不可能的。由于您需要移动设备上的数字键盘以及:,因此根本不是原生的。键盘上没有: 键,您对此无能为力。

只需使用<input type=time> 你可以在移动设备上很好地实现魔法。如果您需要用户输入,请使用numbertext,并添加额外的pattern 属性来执行验证。或者使用jQuery validation plugin之类的东西 执行及时验证。

【讨论】:

  • 时间选择器适用于一天中的时间,例如下午 12:45 - 我只想要具体的小时和分钟作为持续时间,例如。这个任务要5小时30分钟才能完成。上午/下午在那里没有多大意义。
  • w3schools.com/jsref/… 不,在移动设备上试试(在我的情况下是 ios8.4)它只让你选择小时和分钟。
【解决方案2】:

尝试 HH:MM 条目和 H:MM 条目

<EditText>
     android:digits="1234567890:"
     android:inputType="textNosuggestions" 
     android:minLength="4"
     android:maxLength="5"/>

如果您想阻止用户输入“91:87”、“:36”或“:3:4”之类的时间以及所有此类变体,那么您必须使用这样的 TextWatcher edistext.addTextChangedListener(new TextWatcher(this));

【讨论】:

  • 这是安卓应用吗?我正在尝试为网络应用程序进行输入。
  • 那你为什么要标记android??浪费我的时间
  • 但是你不需要android中的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多