以前の同様の質問(http://q.hatena.ne.jp/1153901836)で既に状況はわかっているのですが、どうしてもIE6にてテキストボックスにdisabled属性を指定した際の文字の色を黒色に設定したいのです。CSSで!important指定などをつけてもやはり反応してくれません。どなたかどうにかして色を指定する方法を教えて頂けませんでしょうか?環境としては、下記の通りです。

 OS:WindowsXP SP3、ブラウザ:IE6 SP2
JavaScriptを使用も可、
readonly属性への代替は不可(理由:HTMLはXMLをインプットにして自動で出力される為勝手に変更ができない[XMLからHTMLに自動変換するソフトがreadonly属性を翻訳できない]。そのHTMLに対してCSSを当てることで変更をしないといけない為)

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/02/11 21:13:22
  • 終了:2009/02/18 21:15:03

回答(2件)

id:Mars No.1

Mars回答回数203ベストアンサー獲得回数202009/02/11 22:52:32

ポイント35pt

xml→html変換ソフトの存在がいまひとつわかってませんが、

htmlに変換後、Javascriptでreadonryに変更するのはどうでしょうか?


<html>
<head>
<title></title>
</head>
<body>
<form>
<input name="abc" type="text" value="文字列" disabled >
<input type="submit" value="送信">
</form>
<!-- ページ 末期に以下のスクリプトを挿入しておく -->
<script type="text/javascript">
// 全ての<input type="text" disabled>を処理する
var l=document.getElementsByTagName('input');
for(var i=0;l[i];i++){
  if(l[i].type=="text" && l[i].disabled) {
    l[i].name="";
      // nameを削除することで無効化(disabledに準ずるようにする)
    l[i].disabled = false;
      // 色変更が効くようにするためにdisabledは取り消し
    l[i].readOnly = true;
      // 内容書き換えが出来ないようにreadonlyに設定
    l[i].style.backgroundColor = '#ebebe4';
    l[i].style.border = 'solid #7f9db9 1px';
      // disabledっぽく見せるため 背景、ボーダーを指定
  }
}
</script>
</body>
</html>

URLはダミーです

http://q.hatena.ne.jp/

id:yoneyore

>xml→html変換ソフトの存在がいまひとつわかってませんが

ソフトというより自作のプログラムです。

ここまで丁寧に回答して頂き申し訳ないのですが、どうしてもdisabledで対応を行いたいのです。やはりreadOnlyに逃げないと駄目なのでしょうか。。。

2009/02/12 10:52:29
id:Mars No.2

Mars回答回数203ベストアンサー獲得回数202009/02/12 12:23:18

ポイント35pt

IE6がdisable属性が付いているとシタイルシートでいくら色を指定しても効かないので、

なにかしら代わりの手段を探すかしかないかと思います。

(current styleを見るとcssでcolor:blackを指定すればちゃんとblackにはなっている、

それでも灰色になるのはdiabled属性があると「cssとは別次元で」後から効果を付けているからだと思う)

XMLデータ上はdisabledのままでかまわない方法、

既存のシステムにjavascriptを追加するだけの方法を提案したつもりですが、

まだ問題があるでしょうか?

(実際のところそれほど自信がある策ではないので)

他に考えられるのは、diabledのinputはそのままに、Javascriptでreadonlyのinputを生成して上に重ねてしまうとか・・具体的なコードは面倒なのでとりあえずパスですが。

http://q.hatena.ne.jp/2

id:yoneyore

ご丁重にありがとうございます。

既存の設定値を利用してどうにか対応を行いたかったのですが、やはりIEの仕様上からは無理ということなのでしょうか。実はこうすればdisabled指定のままでもOKというのがあるのではないのかと思いこの様に質問を書いているしだいであります。でも、オブジェクトにはきちんとcolor属性指定がされているんですよね。。。

2009/02/12 12:57:05

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません