【问题标题】:Restrict input element to specific string将输入元素限制为特定字符串
【发布时间】:2017-09-28 12:46:49
【问题描述】:

有没有一种雄辩的方式来限制输入元素输入特定的字符串?

用户应该能够按下任何键,但只有当该键与特定字符串中的下一个正确字符匹配时,输入才会被接受并且光标会前进。

当然有模式属性,但我认为这不是解决方案。

【问题讨论】:

  • 在输入元素上设置 oninputchange,将字符串与您不想允许的输入匹配,如果匹配,禁用提交 btn 或您可能想做的事情,比如显示错误消息并清除输入字段
  • 您能多解释一下您的预期行为吗?用户是否应该只能输入特定的字符串?
  • 用户可以在技术上按下任何键,但只有当该键与字符串中的下一个正确字符匹配时,光标才会前进。这有意义吗?
  • 描述有道理。但我很好奇你为什么想要这种行为?
  • 为什么不直接使用具有预设值的输入并将其设置为disabled

标签: javascript jquery html


【解决方案1】:

如果输入的键与您的字符串不匹配,您可以阻止默认的 keydown。例如:

const input = document.getElementById('omg')
const string = 'lolwow'
input.addEventListener('keydown', event => {
  const index = input.value.length
  if (string[index] != event.key) {
    event.preventDefault()
  }
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-18
    • 1970-01-01
    相关资源
    最近更新 更多