【问题标题】:Ignore the typing if enter higher number than 24 or just 0如果输入的数字大于 24 或仅 0,则忽略输入
【发布时间】:2014-10-03 22:46:27
【问题描述】:

如果用户输入了大于 24 的数字并且用户输入了 0,我希望此功能忽略输入。现在,我可以输入大于 24 的数字。为什么?

$('body').on('keyup', 'input[name="textfield-number-month"]', function(e) {
    var data_val = $(this).val();

    if(parseInt(data_val) >= 25 || parseInt(data_val) == 0) {
        e.preventDefault();
        return false;

    } else if(parseInt(data_val) <= 24) {
        // Some code...
    }
});

jsFiddle

【问题讨论】:

  • 你为什么不在这里放一个断点并提供一些细节
  • @Steve 断点?您还想了解哪些详细信息?
  • 函数被命中了吗? data_val 的值是多少?当你输入 25 时会发生什么?
  • @Steve 是的。你看过演示吗?它会忽略我的函数并输入我选择输入的数字

标签: jquery input numbers


【解决方案1】:

我建议您在用户输入超出范围的值时删除最后一个字符

$(this).val(data_val.slice(0,1));

这是一个jsFiddle

【讨论】:

  • 现在我们已经到了某个地方!非常感谢!我会尽快接受你的回答。如果您知道如何在数字上方匹配时完全忽略/阻止输入,那就太棒了!当你输入超过 24 的数字时,什么都不会发生
  • 是的,我试过了,但我现在给了你这个解决方案,我会尝试阻止打字,一旦我做到了,我会发布更新
  • 谢谢 :) 感谢您的帮助
【解决方案2】:

您只是停止进一步输入,但您可以执行第 99 号...您必须将值设置回来,例如:

    if (parseInt(data_val) >= 25 || parseInt(data_val) == 0) {
        $(this).val("25");
        e.preventDefault();
        return false;

    } else if (parseInt(data_val) <= 24) {
        // Some code...
    }

你也可以把它设置回来:

        $(this).val("");

【讨论】:

  • 非常感谢!所以我不能让函数忽略用户输入的内容?例如,用户输入 23 并且它可以工作,但是当用户输入 26 时,什么都不会发生。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-03
相关资源
最近更新 更多