2012-03-03 76 views
2

我有一個用戶可以輸入十六進制值的輸入。 「#」符號是輸入字段背景圖像的一部分,因此用戶只需輸入數字即可。我希望將「#」標記爲html,並使其不可選/不可編輯。這可能嗎?輸入中的第一個字符不可選/不可編輯

+0

也許這可能會有所幫助 - [有沒有辦法讓文本區域部分可編輯?](http://stackoverflow.com/questions/5444874/is-there-a-way-to-make- a-text-area-partially-editable-make-only-portions-th) – neo108 2012-03-03 12:25:34

回答

5

監聽輸入元素的keyup事件,那麼處理程序中,您可以強制輸入的值總是#字符開始,接着0-9/AF

$('#input').bind('keyup', function(){ 
    var sanitized = $(this).val().replace(/[^0-9a-f]/g,''); 
    $(this).val('#'+sanitized); 
}); 

觀看演示這裏:http://jsfiddle.net/QrrjW/1/

+0

很好的解決方案。但是,如果你綁定到keydown事件會更酷:) – 2012-03-03 18:50:28

+0

@Jørgen最初我也想到了這一點:)但是由於'keydown'在插入觸發鍵之前接受了輸入值,所以最後一個字符不會被清理掉http ://jsfiddle.net/QrrjW/2/ – fyzlman 2012-03-04 07:13:36

+0

偉大的解決方案。謝謝@Jørgen! – user495915 2012-03-04 10:09:23

0

將x字符輸入框作爲默認值。使用js管理.if用戶第一個charector類型#然後確定其他類型#使用js和js中的用戶輸入字符。

相關問題