10

最近、多くのサイトでこれが行われているのを見てきましたが、追跡できないようです。基本的に、ボタンがクリックされたときにパネル全体 (HTML テーブルのフォーム内) を「無効」にしたいと考えています。

無効にするということは、テーブル内のフォーム要素を使用できないようにし、テーブルをフェードアウトさせたいということです。

これを達成するために、テーブルの上に「ベール」を配置し、絶対に配置された div を不透明度の低い白い背景にします (その後ろのテーブルを見ることができますが、div があるため何もクリックできません)。目の前です)。これにより、必要なフェード効果も追加されます。ただし、ベールの高さを 100% に設定すると、画面のサイズ (スクロールを含まない) になるだけなので、ユーザーが上下にスクロールすると、ベールの端が表示され、きれいではありません.

これは通常、別の方法で行われると思います。これを達成するためのより良い方法として、誰か提案がありますか?

4

6 に答える 6

8

次のようなJavaScriptを試すことができます。

function disable(table_id)
{
    var inputs=document.getElementById(table_id).getElementsByTagName('input');
    for(var i=0; i<inputs.length; ++i)
        inputs[i].disabled=true;
}
于 2010-04-30T06:45:53.170 に答える
3

Jqueryで以下を試してください

$("#freez").click(function(){
    $('#tbl1').find('input, textarea, button, select').attr('disabled','disabled');
});
$("#unfreez").click(function(){
    $('#tbl1').find('input, textarea, button, select').removeAttr("disabled");
});
于 2012-01-04T11:03:38.850 に答える
1

HTML テーブルの内部要素を無効にすることは、次に示すようにポインターイベントCSS スタイルを使用して行うこともできます。

table[disabled], table[disabled] input { pointer-events: none }

JavaScript コード ロジックの任意の時点で、disabled以下に示すように属性を親テーブルに追加して、CSS スタイルを有効にすることができます。

let gameTable = document.getElementById('gameBoard');
gameTable.setAttribute('disabled', true);
于 2019-01-11T10:20:01.820 に答える
0

私が間違っている場合は誰かが私を訂正してください、しかし私はあなたがやりたいことを達成するための多くのオプションを持っているJavascriptといくつかの派生Javascriptライブラリを見てきました。私はjQueryライブラリを使用していくつかの同様の効果を実行しました。

考えるべきことの1つは、正確に何を無効にしようとしているのかということです。基本的に、テーブルはインタラクティブではないため、テーブルを無効にしてもあまり効果はありません。無効にするテーブル内のフォーム要素の場合。これはJavaScriptを使用して実現できます。

JavaScriptを使用してフォーム要素を無効にするだけでなく、JavaScriptを使用して非インタラクティブ要素のプロパティを変更することもできます。

この例としては、JavaScriptを使用して、フォントや境界線の色、およびテーブル内の他の非インタラクティブな要素を変更して、無効になっているように見えるようにすることがあります。もちろん、フォーム要素を無効にするには、JavaScriptを使用する必要があります。

于 2010-04-30T06:43:19.500 に答える
0

JavaScriptを使用して、領域の高さをピクセル単位で確認することはできませんか?そして、ベールの高さをその数に設定しますか?

頭の中に正確なコードはありませんが、offsetHeightでうまくいく可能性があります

于 2010-04-30T06:44:12.103 に答える