2014-10-02 126 views
0

如何允许文本和数字,但不允许在此输入中的特殊字符?如何允许输入文本和数字,但不允许特殊字符?

在我的代码,它会只允许数量,我想申请允许文字也

我该怎么办呢?

我可以使用此功能基于JavaScript?

http://jsfiddle.net/mhgv0wt0/

<form action=# name=f1 id=f1 onsubmit="return false"> 
<input type=text name=t1 id=t1 value="" size=25 style="width:300px;" 
onkeypress="if(this.value.match(/\D/)) this.value=this.value.replace(/\D/g,'')" 
onkeyup ="if(this.value.match(/\D/)) this.value=this.value.replace(/\D/g,'')" 
> 
</form> 
+0

定义的“允许”(应检查作出输入字符时,或者在提交?),“数字”(是-3.14一个数字?),和“文本”(是“未婚夫”文本?)。当你确切地定义了问题时,你几乎可以解决问题。 – 2014-10-02 14:15:33

回答

1

只需添加一个pattern属性:

<input pattern="^[a-zA-Z0-9\s]+$" type="text" /> 

DEMO

以上将在大多数浏览器。但是你可以使用

$('input').keypress(function (e) { 
    if (!/[a-zA-Z0-9\s]/.test(String.fromCharCode(e.which || e.keyCode))) { 
     e.preventDefault(); 
    } 
}); 

DEMO

+0

你能告诉我一些小提琴吗? – 2014-10-02 12:43:00

+0

这只适用于[某些浏览器](http://caniuse.com/#feat=forms)。对于较老的浏览器支持,您需要javascript [http://support.dell.com](http://stackoverflow.com/a/9255770/2414886) – 2014-10-02 12:44:36

+0

@SarahBourt耐心:) – 2014-10-02 12:45:34

0

使用jQuery回落到jQuery的。你可能也想使用空格字符(\ S)

$('#t1').bind('keypress', function (event) { 
    var regex = new RegExp("^[a-zA-Z0-9]+$"); 
    var key = String.fromCharCode(!event.charCode ? event.which : event.charCode); 
    if (!regex.test(key)) { 
     event.preventDefault(); 
     return false; 
    } 
}); 

试试这个fiddle

+0

看到我的编辑.... – Fergoso 2014-10-02 13:16:56

+0

我也无法在输入中插入特殊字符。 – 2014-10-02 13:20:25

相关问题