2013-03-04 84 views
-1

我有一個小的html聯繫表格,其中只包含姓名和電話。如何限制輸入文字

我想要做的是每當Key Up事件發生我想檢查哪個鍵被按下,並且爲Phone字段我只接受數字。對於Name字段,我只允許使用字母字母,而不是數字。

例如,如果我將數據輸入到Phone輸入中,並且我按任何字符而不是數字,則它不應顯示在輸入字段中。

我該怎麼做?

+1

[?你嘗試過什麼(http://whathaveyoutried.com)你不是第問問這個問題。 – 2013-03-04 19:05:59

+0

顯示您嘗試過的內容並解釋不能正常工作的內容。 – isherwood 2013-03-04 19:06:05

+0

好吧,我已經刪除了我的大部分嘗試,但通常,我試過的是確定哪個按鍵被按下,然後檢查它是否是數字/字母。無法做到這一點..我檢查了「Key Up」事件的E值後卡住了,因爲我得到一個數字作爲結果,我不知道如何檢查它與哪個類別有關。 – kfirba 2013-03-04 19:10:09

回答

1

HTML

<input type="text" name="phone" id="phone" placeholder="Phone" /><br /> 
<input type="text" name="name" id="name" placeholder="Name" /> 

jQuery的

$("#phone").keyup(function() { 
    if (this.value.match(/[^0-9]/g)) { 
     this.value = this.value.replace(/[^0-9]/g, ''); 
    } 
}); 

$("#name").keyup(function() { 
    if (this.value.match(/[^a-zA-Z]/g)) { 
     this.value = this.value.replace(/[^a-zA-Z]/g, ''); 
    } 
}); 

演示:http://jsfiddle.net/calder12/KfRxv/

+0

此解決方案有效,但唯一讓我感到不安的是它在刪除之前實際顯示數字/字母。我希望不要顯示數字/字母表。那可能嗎? – kfirba 2013-03-04 19:21:04

+0

老實說,我不這麼認爲,瀏覽器在它可以做任何事情之前需要知道關鍵值,並且它將顯示第二個知道它是什麼的值。 – 2013-03-04 19:41:09

+0

我明白了。有一個小問題。我的語言是希伯來語,如果我在名稱字段中輸入我的字母字符,它將刪除它。我如何啓用希伯來語? – kfirba 2013-03-04 19:48:25

1

對於數字字符只添加以下JavaScript:

function checkInput(e) 
{ 
    var k; 
    document.all ? k = e.keyCode : k = e.which; 
    var char = String.fromCharCode(k); 
    if(!char.match(/^\d+$/))return false; 

    return true; 
} 

然後在標記您的輸入元素添加onkeypress事件= 「返回checkInput(事件)」。

您可以修改JS只允許任何你想要的字符。

+0

適用於數字,但是如果我按下BackSpace?有一個問題:s – kfirba 2013-03-04 19:21:33

+0

您可以將正則表達式更改爲(/ [\ d \ b \] /)以獲得允許的數字和退格。真的,你會得到正則表達式的小提琴,使它適合任何你想要的,但JS將保持不變。如果你想只允許字母字符,你會改變它的正則表達式,如果你只想允許特殊字符等,那麼JS就是一個框架,而不是複製粘貼到你的網站。 – Geneb 2013-03-04 19:51:46