0

アプリケーションは、印刷版の一時 HTML ページを作成します。ユーザーがページを操作できないように、ページ上のすべてを無効にすることができます..しかし、それは色が灰色になり、ユーザーは読書に問題を抱えています. SO私はすべてを読み取り専用にしたい..

これが私のコードです。

var x = 0;        
var element;
while (x < document.getElementsByTagName("input").length) {

  element =  document.getElementsByTagName("input")[x].type
  if (element = "BUTTON") {              
      document.getElementsByTagName("input")[x].onclick = null;
  }
  if (element = "TEXT") {
     document.getElementsByTagName("input")[x].readOnly = true;
  }
  if (element = "CHECKBOX") {
     document.getElementsByTagName("input")[x].disabled = true;
  }
  x++;     
}

チェックボックスのifブロックを削除すると、正常に機能します。しかし、チェックボックス条件を含めると、すべてが無効になります(ボタンとテキストも含む)..デバッグすると、すべてのifブロックが実行されていることがわかります..理由がわかりません。

この点で誰か助けてもらえますか?

4

6 に答える 6

1

等しいかどうかをチェックするときは、=== を使用してください。現在、代入演算子 = を使用しています。これは、すべてのチェックが true を返すことを意味します。

于 2013-09-06T17:06:28.457 に答える
0

無効な入力の差別化スタイルは、ユーザーに視覚的なフィードバックを提供するので便利だと思います。

これはあなたの質問に直接対処するものではありませんが、良い代替案になるかもしれません。無効になっている入力にスタイリングを適用して、好みに合わせて、おそらく次のようにすることができます。

input[disabled=disabled] {
    background: rgba(255,0,0,0.05);
    border: dashed 1px rgba(255,0,0,0.1);    
    color: black;
    cursor: not-allowed;
}
于 2013-09-06T17:21:28.113 に答える
0

比較するには = の代わりに == を使用します

     if (element == "BUTTON") {  }               
于 2013-09-06T17:06:04.967 に答える
0

最後に、この問題の回避策を作成しました。

すべての要素 (ハイパーリンク、ドロップダウン、テキスト) をラベルに変換し、黒色で表示しました。

于 2013-09-16T14:14:54.400 に答える
0

if 条件内で = の代わりに == を使用します。

于 2013-09-06T17:07:43.477 に答える
0

ページ上のすべてを単純に無効にしたい場合- より高速な方法は、より高い値の z-index を使用して、ページ コンテンツ上に透明な DIV を配置することです。

このようなもの:

Hello: <input type="text"/> <br>
Check this: <input type="checkbox" />

<div style="position: absolute; z-index: 10; top:0; left;0; width:100%; height:100%" />

デモ: http://jsfiddle.net/j39Au/

于 2013-09-06T17:08:07.463 に答える