木曜日, 1月 14, 2010
[JavaScript]disabledが反映しない
▼質問
ボタン操作で処理の長いものがあった時に、他のボタンなどが操作されないように
全てのコントロールをdisabledで操作不可状態にしようとしたんだけど・・・。
うまく反映しない時があるんだ。
どうしてかわかるかな?!
▼回答
setTimeout関数を使わないと駄目みたいなんだ。
そのやり方を次に示しておくから参考にしてくれ!!
■参考サイト
ボタンの非表示
ボタン操作で処理の長いものがあった時に、他のボタンなどが操作されないように
全てのコントロールをdisabledで操作不可状態にしようとしたんだけど・・・。
うまく反映しない時があるんだ。
どうしてかわかるかな?!
▼回答
setTimeout関数を使わないと駄目みたいなんだ。
そのやり方を次に示しておくから参考にしてくれ!!
function allDisabled( flag )
{
with ( document.フォーム名 ) {
for ( var i = 0 ; i < elements.length ; i++ ) {
elements[i].disabled = flag;
}
}
}
■ボタンから呼出す関数
function doMainProc()
{
document.body.style.cursor = "wait";
// disabled設定処理
allDisabled( true );
var n = setTimeout( "doSubMainProc();", 1 );
}
function doSubMainProc()
{
// 処理を記述
clearTimeout( "doSubMainProc();" );
document.body.style.cursor = "default";
// disabled設定処理
allDisabled( false );
}
■参考サイト
ボタンの非表示