2014-10-02 123 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

相關問題