如何限制表单中的粘贴值?

时间:2011-05-04 06:11:06

标签: php jquery

我有一个包含电话号码字段的表单

<input name="phNumber" type="text" class="numbersonly"/>

使用js我只能允许数字,但是,我想从鼠标中重新粘贴值...

{注意:此字段中无需验证}

2 个答案:

答案 0 :(得分:2)

您可以将事件绑定到输入组件:

$('selector').bind('paste', function() {
  return false;
});

参见参考:jQuery API - bind

答案 1 :(得分:1)

您可以回复change事件,删除任何非数字。

$("input.numbersonly").change(function() {
    this.value = this.value.replace(/\D/g, "");
});

使用正则表达式(/\D/g)来匹配所有非数字,并用替换字符串替换它们(在这种情况下,没有 - "")。 \D部分是“非数字”部分,g是表示“全局”的标志(整个字符串)。


偏离主题:我真的,真的不会禁止电话号码字段中的所有非数字。人们习惯于用空格,连字符,或许括号来写电话号码,甚至可能是加号(例如+1 (408) 123-4567)。如果删除这些提示,电话号码可能非常难以阅读(因此要正确键入)。您确实希望用户正确输入数字,对吗?在这种情况下,我会保持验证非常开放。