入力にdisabled
属性を使用することで、ユーザー入力を防ぎ、わずかに異なる外観をトリガーすることができます。
これがデモです http://jsfiddle.net/D2RLR/3023/
同じスタイルをテーブルのような別のTAGに適用したいとします。
実際、私はhandsontable
を使用してExcel-like data grid editor
を生成しています。
次のコンテキスト(テーブルのようなタグ)でdisabled attribute
を適用するにはどうすればよいですか?
これはhandsontable
とbootstrap
を使用したデモです http://jsfiddle.net/D2RLR/3025/
ここをチェックしてください:
http://handsontable.com/demo/conditional.html
有る .readOnly
セルプロパティ-使用してください!
HTML入力には、readonly
プロパティだけでなく、disabled
プロパティもあり、動作にはかなりの違いがあります。
Bootstrapの既存のinput[disabled]
スタイルを適用することはできませんが、スタイルを正確に模倣する新しいCSSを追加することはできます。
例えば:
#exampleGrid td {
cursor: not-allowed;
background-color: #EEE;
color: #9E9999;
}
明らかに、これには読み取り専用ロジックは含まれていません。 フィドルでは少し奇妙に見えます (列ヘッダーと行ヘッダーが同じ色であるため)が、それが要点です。
Boostrapは、次のような無効な属性に基づいて入力のスタイルを設定するだけです。
input[disabled], select[disabled], textarea[disabled], input[readonly], select[readonly], textarea[readonly] {
background-color: #EEEEEE;
cursor: not-allowed;
}
したがって、テーブルにはそのような属性がないため、bootstrapを使用してこれを行うことはできません。
ある種のプラグインを使用するか、独自のプラグインをロールする必要があります。
多分これは役立つかもしれません...セルの外観を変更し、あなたはそれを編集することができます。
[〜#〜] html [〜#〜]
<table class="editableTable">
<thead>
<tr>
<th>Code</th>
<th>Name</th>
<th>E-mail</th>
<th>Telephone</th>
</tr>
</thead>
<tbody>
<tr>
<td>001</td>
<td>João Carlos</td>
<td>[email protected]</td>
<td>(21) 9999-8888</td>
</tr>
<tr>
<td>002</td>
<td>Maria Silva</td>
<td>[email protected]</td>
<td>(81) 8787-8686</td>
</tr>
<tr>
<td>003</td>
<td>José Pedro</td>
<td>[email protected]</td>
<td>(84) 3232-3232</td>
</tr>
</tbody>
</table>
[〜#〜] css [〜#〜]
* {
font-family: Consolas;
}
.editableTable {
border: solid 1px;
width: 100%
}
.editableTable td {
border: solid 1px;
}
.editableTable .editingCell {
padding: 0;
}
.editableTable .editingCell input[type=text] {
width: 100%;
border: 0;
background-color: rgb(255,253,210);
}
[〜#〜] js [〜#〜]
$(function () {
$("td").dblclick(function () {
var originalContent = $(this).text();
$(this).addClass("editingCell");
$(this).html("<input type='text' value='" + originalContent + "' />");
$(this).children().first().focus();
$(this).children().first().keypress(function (e) {
if (e.which == 13) {
var newContent = $(this).val();
$(this).parent().text(newContent);
$(this).parent().removeClass("editingCell");
}
});
$(this).children().first().blur(function(){
$(this).parent().text(originalContent);
$(this).parent().removeClass("editingCell");
});
});
});