我正在创建一个网页,其中我有一个输入文本字段,其中我只允许数字字符,如(0,1,2,3,4,5 ... 9)0-9.
我怎么能用jQuery做到这一点?
在键入HTML文本输入时,验证HTML文本输入的最佳方法是什么?我所知道的所有方法都有一些缺点:
使用$.keypress您只能访问输入的旧值,而不是新值.此外,将无法检测到某些事件(如使用鼠标进行剪切/粘贴).
$.change仅在输入失去焦点时才使用.
这个问题提出了一个解决方案,您可以使用轮询来监视属性更改.原则上,可以在回调中验证新值,如果无效则可以恢复为旧值.然而,除了要求投票之外,我不确定它是否没有竞争条件.
本文建议使用浏览器特定功能,如果没有可用则回退到轮询.看起来是迄今为止最好的方法.
[更新]如答案中所指出的,$.keyup更新后可以访问该值.但是,它不仅不适用于鼠标剪切/粘贴,而且如果按住某个键也会失败,只有在输入很多内容后才会释放.或者,如果组合keydown并keyup保存/恢复旧值,则在用户键入太快时会中断.
以上解决方案都没有错误或非常安全的跨浏览器.那里有更好的解决方案,既可以随时使用,也可以在制造中使用?似乎是一个常见的问题,我最近试图回答类似的 问题,没有成功,我也对答案感兴趣.
(对于这种做法的一个好的论据也是受欢迎的,如果实施此验证会出现新的问题;但是,这在其他语言中似乎是常见的,所以我怀疑这是一件坏事要想)
我需要一个文本框,每当输入内部时,只允许数字[0-9].我用过type="number"哪个肯定持有客户端验证,但也允许键入其他字母表.我可以通过跟踪每个keydown和匹配正则表达式来做到这一点,但我想知道是否有任何方法我可以限制只使用html标签键入并且不定义JavaScript中的任何函数来比较每个keydown?
不足以执行此操作的代码是:
<input type="number" id="txt_number" maxlength="70" name="txt_name" placeholder="Number">
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏.
我正在尝试创建一个输入字段,用户只能输入数字.这个功能对我来说已经很好了:
$('#p_first').keyup(function(event){
if(isNaN(String.fromCharCode(event.which))){
var value = $(this).val();
$(this).val(value.substr(0,value.length-1));
}
});
Run Code Online (Sandbox Code Playgroud)
但问题是,当用户持有带有角色的键时,功能键盘没有触发....任何想法我怎么能禁止这个?
如何限制输入字段只输入数字/数字int和浮动两者.有时我们需要允许像amount这样的字段的整数和浮点值,因此在这种情况下需要验证.没有可用的解决方案,但它们具有大尺寸代码.因此需要一个简短但有效的代码.
<p> Input box that accepts only valid int and float values.</p>
<input class="number-only" type=text />
Run Code Online (Sandbox Code Playgroud) 我正在使用jQuery Spinner,设置了min(0)和max(500)值.我该怎么做才能防止用户在输入框中直接输入非数值(或0-500范围之外的值)?当用户使用微调按钮时,最小值和最大值有效,但在输入表单中输入内容时则不起作用.
如何使用 jQuery 验证器插件限制“正数”仅作为文本框的输入(仅允许“-99”)?