2

ここで私がやろうとしているのは、ボタンをクリックすると、テキストフィールドのデフォルト値の色を変更する必要があるということです。私のコードは、IE を除くすべてのブラウザーに適用されます。IE でこの問題を解決する方法。ドロップダウンリストのやり方。

<html>
<head>
 <title> Change color for text when it is Disabled </title>
 <meta name="Generator" content="EditPlus">
         <script type="text/javascript">
      <!--
/*function changeColor(){
    document.getElementById('button_1').style.color='red';
}*/
function changeColor(){
    document.getElementById('color').removeAttribute('disabled');
    document.getElementById('color').style.color='red';
    document.getElementById('color').setAttribute('readOnly','readOnly');
}
      //-->
  </script>
   </head>

  <body>
      <input type="text"  value='Hi Conrep' disabled id='color'><br />
        <select id='color' disabled>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
   </select><br />
     <select>
     <option value="volvo">Volvo</option>
        <option value="saab">Saab</option>
      <option value="mercedes">Mercedes</option>
        <option value="audi">Audi</option>
   </select> 
   <input type='button' value="Change Color" onclick ='changeColor();'>
  </body>
    </html>
4

2 に答える 2

1

クロスブラウザの場合readonly、無効にする代わりに属性を使用する必要があります。

<style type="text/css">
.redColor
{
    color:red;
}
</style>
<script type="text/javascript">
<!--
function changeColor()
{
    var el = document.getElementById('button_1');
    el.className = "redColor";
}
//-->
</script>
<input type="text"  value='Hi Conrep' readonly id='button_1'>
<input type='button' value="Change Color" onClick ='changeColor();'>
于 2013-03-12T07:52:34.377 に答える
0

disabledこれは、IE ではコントロールを変更できないためです。常にそのようにレンダリングします

あなたのコードでこれを試してください:

<style>
  .IEFormat
  {
      color:Red;
      background-color:#CCCCCC;
      border:1px Solid #BBBBBB;
  }
  .Format
  {
      color:Red;
  }
</style>
<script type="text/javascript">
  navigator.sayswho= (function(){
    var N= navigator.appName, ua= navigator.userAgent, tem;
    var M= ua.match(/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i);
           if(M && (tem= ua.match(/version\/([\.\d]+)/i))!= null) M[2]= tem[1];
             M= M? [M[1], M[2]]: [N, navigator.appVersion,'-?'];
          return M;
  })();
  function changeColor(){    
      var elem = document.getElementById('button_1');
      if(navigator.sayswho.toString().indexOf("IE")>0)
      {
         if(elem.getAttribute('disabled'))
            elem.removeAttribute('disabled');
         elem.className="IEFormat";
         elem.setAttribute('readOnly','readOnly');
      }     
      else
         elem.className='Format';
}
</script>

したがって、基本的にあなたがしていることは、ブラウザーを検出し、他のすべてのブラウザーに対して現在のブラウザーを実行し、IE に対して別のブラウザーを実行することです。

スタイルを使用して、IEで読み取り専用テキストボックスを無効に見えるようにすることができます。:)

于 2013-03-12T07:57:20.157 に答える