2014-02-05 25 views
1

如何在jQuery上禁用dynamcaly創建的HTML輸入表單上的字母? 我可以使這個輸入形式alerady存在,但不能爲dynamicaly創建新的形式。jQuery禁用輸入表單中的字母

+2

中查到,但是正則表達式......你爲什麼不能呢? –

+2

創建新表單後,使用事件委託或重新綁定處理程序。 –

+2

嘗試不說,你不能沒有嘗試... –

回答

0

在jQuery V1.7中, 「活」 已經過時了。您應該使用「on」進行事件委派。例如:

<head> 
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> 
<script type="text/javascript"> 
    $(document).ready(function() { 
    $('body').on('keyup', 'input', function() { 
     // do something 
    }); 
    }); 
</script> 
</head> 

工作示例包括你需要可以在http://jsfiddle.net/5XXJR/

+0

我使用jquery 1.10.1並將其放在我的網站的頭部,無法開始工作,我該怎麼辦? – user3104669

+0

嘗試等待,直到DOM已加載執行您的代碼,請參閱上面的更新示例: – smithbh

+0

其工作!謝謝! – user3104669

4

你需要簡單地使用jQuery的「活」的功能,正如以下:

$('input').live('keypress', function(key) { 
    if(key.charCode < 48 || key.charCode > 57) return false; 
}); 

這適用於文件中的所有輸入,無論是在頁面加載或實時生成的,你可以如果在文件中有其他輸入,則用類名替換它以僅處理這組輸入。

給你一個完整的例子:

http://jsfiddle.net/tZPg4/8575/

+0

感謝您的代碼,但我把這段代碼放在我的頁面頭部,並且無法工作,爲什麼? – user3104669

+0

原因不應該只是名字問題,要麼你與我們分享代碼的相關部分,要麼檢查名稱並調試好你的代碼。 –

+3

.live()已棄用,請使用.on()而不是 –