【问题标题】:Enter only week days (1 to 7) in html input field在 html 输入字段中仅输入工作日(1 到 7)
【发布时间】:2019-08-22 09:27:37
【问题描述】:

我有一个星期和几天的表格,用户可以在其中填写星期和日期(用逗号分隔)。

在日字段中,用户必须输入星期几,例如 1、2、3、4、5、6、7 或 2、5、7。我想添加验证以防止数字超出 1-7 范围。

或者当用户点击数字时,会弹出包含数字 1-7 的日历类型并在文本字段中添加数字。

【问题讨论】:

  • 读取输入,拆分, 转换为数字,验证每个数字是否在所需范围内
  • 为什么你不使用标准的bootstrap日期选择器mdbootstrap.com/docs/jquery/forms/date-picker
  • 或使用 7 个复选框。然后你不需要验证任何用户输入,除了确保至少有一个被选中
  • 请向我们展示您尝试过的代码。

标签: javascript jquery


【解决方案1】:

这样的事情就可以了。如果需要,添加您的“,”代码 (188) https://keycode.info/

$('#text_field').keypress(function(e) {
        preventNumberInput(e);
    });


    function preventNumberInput(e){
    var keyCode = (e.keyCode ? e.keyCode : e.which);
    if (keyCode >= 49 && keyCode <= 55 ){
        // accept

    } else {

    }
}

已编辑

使用它来防止复制粘贴

$('#text_field').on("cut copy paste",function(e) {
      e.preventDefault();
   });
});

【讨论】:

  • 从技术上讲,这个答案可以输入:!,@,£,$,%,^,& 因为它们共享相同的键码。确保将表单字段设置为数字,以确保无法输入这些符号。
  • 这仍然允许您通过粘贴输入任何您喜欢的值
  • @DanielVickers,我们可以通过阻止 shift 键来阻止这些字符。像这样: if (e.shiftKey && e.which == 51)
  • @RoryMcCrossan,请检查编辑后的答案。我已经添加了如何防止复制和粘贴。
  • 或者,您可以在 JS 中保存所有这些乱七八糟的东西,只需在 HTML 中使用 7 个复选框,正如我在问题下的评论中提到的那样。
猜你喜欢
  • 2021-10-26
  • 2017-08-21
  • 1970-01-01
  • 2016-02-26
  • 1970-01-01
  • 2023-03-21
  • 2012-03-11
  • 2020-03-28
  • 1970-01-01
相关资源
最近更新 更多