
お世話になります。
phpMyAdminのテーブルみたいに、セルの一部にカーソルが乗ると背景色を緑色に変更し、離れると元の色に戻り、セルの一部でクリックすると、特定のチェックボックスにチェックが入り、かつ背景色をオレンジ色に固定するやり方を探しています。(チェックが入ると、マウスが乗っても、離れても、チェックがはずれるまではオレンジ色のまま)
phpMyAdminは一行全てが色が変わりますが、現在考えているのは、
<form id="form" action="hoge.php" method="post" name="form">
<table width="500" border="1" cellspacing="2" cellpadding="0">
<tr>
<td bgcolor="#dee3e7"><input type="checkbox" name="del_1" value="1" />削除1</td>
<td bgcolor="#dee3e7">ファイル1</td>
<td bgcolor="#dee3e7"><input type="checkbox" name="del_2" value="1" />削除2</td>
<td bgcolor="#dee3e7">ファイル2</td>
</tr>
</table>
</form>
のように、一行にセルが4つあります。
左二つのどちらかにマウスが乗ると左二つの色を変え、クリックすると、左側のチェックボックスにチェックが入り、色を固定する。
同様に右側2つのセルにカーソルが乗れば色を変え、離れれば元の色に戻る。表の一部をクリックするとチェックボックスにチェックが入り、色が固定される・・・
このようなページを作りたいので、是非、お力をかして頂けないでしょうか。よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
IEだとうまくいくが、FireFoxだとちょっと動作が異なる(チェックボックス自体が機能しない、許されよ)
--------------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=SHIFT_JIS">
<title>Sample</title>
<script type="text/javascript">
<!--
function mouseover(el){
el.style.backgroundColor="Green";
}
function mouseout(el){
el.style.backgroundColor="";
}
function mouseoverWithLock(el,f){
if(!f.checked)
mouseover(el);
}
function mouseoutWithLock(el,f){
if(!f.checked)
mouseout(el);
}
function changeLock(el,f){
if(f.checked){
el.style.backgroundColor="";
f.checked=false;
} else {
el.style.backgroundColor="Orange";
f.checked=true;
}
}
//-->
</script>
</head>
<body>
<form id="form" action="hoge.php" method="post" name="form">
<table width="500" border="1" cellspacing="2" cellpadding="0">
<tr>
<td bgcolor="#dee3e7"
onmouseover="mouseoverWithLock(this, form.del_1)"
onmouseout ="mouseoutWithLock(this, form.del_1)"
onclick ="changeLock(this, form.del_1)">
<input type="checkbox" name="del_1" value="1" onclick="changeLock(this.parentElement,this)"/>削除1</td>
<td bgcolor="#dee3e7"
onmouseover="mouseover(this)" onmouseout="mouseout(this)">ファイル1</td>
<td bgcolor="#dee3e7"
onmouseover="mouseoverWithLock(this, form.del_2)"
onmouseout ="mouseoutWithLock(this, form.del_2)"
onclick ="changeLock(this, form.del_2)">
<input type="checkbox" name="del_2" value="1" onclick="changeLock(this.parentElement,this)" />削除2</td>
<td bgcolor="#dee3e7"
onmouseover="mouseover(this)" onmouseout="mouseout(this)">ファイル2</td>
</tr>
</table>
</form>
</body>
</html>
回答して頂きまして本当にありがとうございます。
参考にしてがんばります!
できれば、ファイル1のセルにマウスが乗ると、チェックボックス(del_1)のセルもグリーンにしたいのと、ファイル1のセルをクリックすれば、チェックボックス(del_1)がチェックされるようにしたいのです。
ひとつのセルを指定するのであれば、this でできますが、その指定する隣のセルも同じようにできないでしょうか。
もし、なにかヒントがあればよろしくお願いします。
ありがとうございました。
No.3
- 回答日時:
>今回の目的とは異なります。
う~ん、
例えば、
ファイルAのペアのTDには
id="A1",id="A2"みたいにIDを振れば、今選ばれたセルから他方のセルを限定することは簡単です。
後は、同じようにセル毎の処理をすればいいです。
ありがとうございました!
idを作ってそれを指定すればよかったんですね。
あと、関数の引数の項目をもう一つ増やしたらできました^^
本当にありがとうございました!
No.2
- 回答日時:
#1>隣のセルも同じようにできないでしょうか。
説明から別々だと思っていました。
それぞれのセルを扱うこともできますが、面倒なので、
表の形は変わってしまいますが、TRでまとめてやると簡単です。
----------------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=SHIFT_JIS">
<title>Sample</title>
<script type="text/javascript">
<!--
function mouseoverWithLock(el,f){
if(!f.checked)
el.style.backgroundColor="Green";
}
function mouseoutWithLock(el,f){
if(!f.checked)
el.style.backgroundColor="";
}
function changeLock(el,f){
//FireFoxではチェックボックス自体をクリックした時うまくない
if(f.checked){
el.style.backgroundColor="";
f.checked=false;
} else {
el.style.backgroundColor="Orange";
f.checked=true;
}
}
//-->
</script>
</head>
<body>
<form id="form" action="hoge.php" method="post" name="form">
<table width="500" border="1" cellspacing="2" cellpadding="0">
<tr bgcolor="#dee3e7"
onmouseover="mouseoverWithLock(this, form.del_1)"
onmouseout ="mouseoutWithLock(this, form.del_1)"
onclick ="changeLock(this, form.del_1)">
<td>
<input type="checkbox" name="del_1" value="1" onclick="changeLock(this.parentElement.parentElement,this)"/>削除1</td>
<td>ファイル1</td>
</tr>
<tr bgcolor="#dee3e7"
onmouseover="mouseoverWithLock(this, form.del_2)"
onmouseout ="mouseoutWithLock(this, form.del_2)"
onclick ="changeLock(this, form.del_2)">
<td>
<input type="checkbox" name="del_2" value="1" onclick="changeLock(this.parentElement.parentElement,this)" />削除2</td>
<td>ファイル2</td>
</tr>
</table>
</form>
</body>
</html>
BLUEPIXY様、いつも本当に感謝しています。
TRでやると、確かに便利ですが、今回の目的とは異なります。
+----+-----+----+-----+
|□削除A|ファイルA|□削除B|ファイルB|
+----+-----+----+-----+
|□削除D|ファイルD|□削除E|ファイルE|
+----+-----+----+-----+
|□削除H|ファイルH|□削除I|ファイルI|
+----+-----+----+-----+
(本当は3行6列の表でやっています)
のように、同じ行にペアAとペアBがあって、
(□削除A)と(ファイルA)のセルのどちらかに
カーソルがあれば、このふたつのセルだけ背景色を
変更し、どちらかのセルをクリックすれば、
チェックボックスにチェックを入れ、背景色を
固定したいのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
チェックボックス付きのテーブ...
-
Formのシリアライズができない
-
ボタン押下すると一行テキスト...
-
フォームに入力した文字を挿入...
-
return trueとreturn falseの用...
-
Selectボックスの幅を自動で広...
-
onchangeイベントを強制的に発...
-
RegularExpressionValidatorの...
-
クリックされた罫表セルの行番...
-
ASP.NETでNAME属性を固定にしたい
-
JavaScript ログアウト処理
-
【jQuery】input nameの文字列...
-
sessionの値でボタンを活性・非...
-
ラジオボタンにタブインデック...
-
submitした値を返したい
-
JavaScriptによる自動計算フォ...
-
setIntervalの間隔を途中で変更...
-
selectを変更不可にしたい
-
プルダウン 項目が多いので先頭...
-
【FORM】 リンク文字で submit...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
チェックボックス付きのテーブ...
-
チェックボックスのチェック結...
-
Javascriptの電卓で最初の何も...
-
画面表示とともにtableの指定の...
-
JavaScriptで、検索結果がでな...
-
JavaScriptで、コピーボタンを...
-
history.backの前に値をクリア...
-
VBSでの自動ログイン
-
文字数を数える際に空白、改行...
-
入力チェックの外部スクリプト...
-
テーブル内のチェックボックス...
-
ボタンを押してテキストボック...
-
ラジオボタンが選択されたらテ...
-
行クリックでチェックボックス...
-
JavaScriptの「.querySelectorA...
-
WEBフォーム(asp)から画像デ...
-
2つのフォームに値を入れて計算
-
localStorageでのcheckbox制御
-
テーブル内のチェックボックス...
-
phpMyAdminみたいに、テーブル...
おすすめ情報