2012-03-03 19 views
2

ユーザーは16進数で入力することができます。 「#」記号は入力フィールドの背景画像の一部であるため、ユーザーは数字を入力するだけです。私は "#"記号をhtmlにして、それを選択不能/編集不可能にしたいと思います。これは可能ですか?入力の最初の文字は選択不可能/編集不可能

+0

おそらく、これは役に立ちます - [部分的に編集可能なテキスト領域を作る方法はありますか?](http://stackoverflow.com/questions/5444874/is-there-a-way-to-make- a-text-area-partial-editable-make-only-th-th-th-th) – neo108

答えて

5

#文字で始まり、0-9/AF

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

デモを参照してくださいに続くその後、ハンドラ内であなたが常にへの入力の値を強制することができ、入力要素でkeyupイベントに聞きますここに:http://jsfiddle.net/QrrjW/1/

+0

良い解決策です。しかし、あなたがkeydownイベントにバインドすれば、よりクールになります:) –

+0

@Jørgen最初は私もそれについて考えました:)しかし、 'keydown'はトリガーされたキーが挿入される前に入力値を取るので、最後の文字はサニタイズされません。http ://jsfiddle.net/QrrjW/2/ – fyzlman

+0

すばらしい解決策。ありがとう@Jørgen! – user495915

0

入力ボックスにデフォルトの値としてput x charを入力します。js manage .ifユーザーの最初のcharectorの種類を入力します。次に#OKを入力します。jはjsとユーザーの入力した文字をjsで入力します。

関連する問題