【发布时间】:2014-11-03 23:29:19
【问题描述】:
我有一个输入字段,我正在使用 .on('input') 函数监控更改,因为这涵盖了 .change 和 .keyup。
没有提交按钮,但我只想根据输入的内容更改输入字段的行为。
稍后我将验证服务器端,我使用的是 html5 type='number'。
我只希望该字段能够容纳一个数字,或者它可以为空。例如,用户可能希望清空内容以键入数字 15。
但是我不希望接受任何其他字符 - 如果输入了这些字符,则应显示提示通知用户这一点,并且该字段默认返回其起始值 1。
HTML
<input type="number" class="input-field" placeholder="" value="1" min="1">
JS
$(document).ready(function ($) {
var num = $('input[type="number"]').val();
$('input[type="number"]').on('input', function () {
var num = $(this).val();
if (num < 1 || isNaN(num) || num !== '') {
alert(num + ' is not a number or is less than 1');
$(this).val(1);
}
});
});
我已尝试使用上述代码,但它不允许空字段。我也试过if (num < 1 || isNAN(num) || num.length != 0) {
我需要将.replace() 与Regexr 一起使用吗?我一直在这里查看一些问题,例如here,但考虑到我正在测试空字符串,我不确定这就是我要寻找的内容。
【问题讨论】:
-
isNAN应该是isNaN -
我只会强制该值在您的参数范围内。我会在稍后发布答案。
-
@VenkataPanga thx 已更新问题但仍然失败
-
@Evilzebra 好的,谢谢
-
this.validity.valid足以检查 html5 元素的有效类型检查
标签: javascript jquery regex input replace