インタラクティブフィールドの外観を削除するために通常のテキストとしてスタイル設定された<input readonly="readonly">
を使用していますが、それでも値は表示されます。
これは、ユーザーがフィールドを編集するのを防ぎながら、値を投稿するのに非常に便利です。これは便利な方法であり、いくつかの回避策があることを認識していますが、この方法を使用したいと思います。
問題:フィールドをクリック/フォーカスしても、点滅するキャレットが表示されます。 (少なくともWin7のFFとIE8で)
理想的には、通常のように動作し、焦点を合わせることができますが、キャレットが点滅することはありません。
Javascriptソリューションを歓迎します。
私の場合、キャレットなどはありません:
<input type="text" value="test" readonly="readonly" >
これを見てください: http://www.cs.tut.fi/~jkorpela/forms/readonly.html
申し訳ありませんが、今あなたの問題を理解しています。
これを試して:
<input type="text" value="test" onfocus="this.blur()" readonly="readonly" >
これをcssで使用できますが、焦点を合わせません:
[readonly='readonly'] {
pointer-events: none;
}
Htmlとjavascriptを使用して行うことができます
<input type="text" onfocus="this.blur()" readonly >
またはjQuery
$(document).on('focus', 'input[readonly]', function () {
this.blur();
});
私がこれを見つけた唯一の方法は
//FIREFOX
$('INPUT_SELECTOR').focus(function () {
$(this).blur();
});
//INTERNET Explorer
$('INPUT_SELECTOR').attr('unselectable', 'on');
KENDO
$('.k-ff .k-combobox>span>.k-input').focus(function () {
$(this).blur();
});
$('.k-ie .k-combobox>span>.k-input').attr('unselectable', 'on');
Onfocus/blurメソッドは正常に動作し、読み取り専用フィールドからカーソルを削除しますが、ブラウザーは次のフィールドに自動的に再フォーカスせず、ユーザーが通常期待するものとはまったく異なるフォーカスを失う可能性があります。したがって、これが必要な場合は、プレーンjavascriptを使用して次のフィールドに焦点を当てることができますが、次のフィールドを指定する必要があります。
<input type="text" name="readonly-field" value="read-only"
readonly onfocus="this.form.NextField.focus()">
ここで、「NextField」は、ジャンプするフィールドの名前です。 (または、次のフィールドを見つけるためのいくつかの他の手段を提供できます)。明らかに、これはタブパネルなどの非表示UI要素にナビゲートする場合、より複雑になります。これも同様に配置する必要があるからです。
簡単!
入力にdisabled
を追加するだけで、クリックできなくなります(フォーカスされます)