如何限制窗体中的粘贴值?

问题描述:

我有一个包含电话号码字段使用JS如何限制窗体中的粘贴值?

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

我可以只允许数量,但我想给restrick从鼠标贴值形式...

{注:没有验证是必需的在此字段中}

+1

* “我想从鼠标restrick粘贴值” *为什么呢?为什么不让你的用户做适合他们的东西? – 2011-05-04 06:12:41

+0

如果没有验证,为什么粘贴物质? – 2011-05-04 06:13:51

+0

我想存储电话数据库和检索视图方面, – K6t 2011-05-04 07:06:20

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

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

请参阅参考:jQuery API - bind

+0

y太复杂了 – K6t 2011-05-04 07:07:41

+1

这只是将一个函数(不做任何事)绑定到对特定事件作出反应的组件。我没有看到任何复杂的东西。 – timbooo 2011-05-04 07:18:31

+0

timmboo我ii先生,, – K6t 2011-05-04 07:24:35

您可以响应change事件,删除任何非数字。

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

使用正则表达式(/\D/g)来匹配所有的非数字和与替换字符串(在这种情况下,没有什么  — "")取代它们。 \D部分是“非数字”部分,而g是“全局”(全部字符串)的标志。


题外话:我真的,真的不会禁止在电话号码字段中的所有非数字字符。人们习惯于用空格,连字符,也许是加号(例如,+1 (408) 123-4567)写电话号码。如果删除这些提示,电话号码可能很难阅读(因此输入正确)。你确实希望你的用户输入正确的号码,对吧?在这种情况下,我会保持相当开放的验证。

+0

好吧伙计生病尝试笏内部替换“/ \ D/G,”“”“ – K6t 2011-05-04 06:20:32

+0

@卡尔特:对不起,我的意思是解释正则表达式。现在完成。 – 2011-05-04 06:39:26

+0

ya我得到了pal
K6t 2011-05-04 07:09:44