以下のスクリプトは
【クリックした行の背景色を変更し、ハイライトさせる】
ものです。
このスクリプトに追加したい動作があるのですが、なかなかよい方法が思いつきません。
<追加項目>
・表以外でクリックすると行の背景色をやめる。
それと同時にテキストボックスもクリアする。
何かよい方法はないでしょうか?
<html>
<head>
<script>
var preEl ;
var orgBColor;
var orgTColor;
function HighLightTR(backColor,textColor,name,ken){
if(typeof(preEl)!='undefined') {
preEl.bgColor=orgBColor;
try{ChangeTextColor(preEl,orgTColor);}catch(e){;}
}
var el = event.srcElement;
el = el.parentElement;
orgBColor = el.bgColor;
orgTColor = el.style.color;
el.bgColor=backColor;
try{ChangeTextColor(el,textColor);}catch(e){;}
preEl = el;
document.form1.test1.value=name;
document.form1.test2.value=ken;
}
function ChangeTextColor(a_obj,a_color){ ;
for (i=0;i<a_obj.cells.length;i++){
a_obj.cells(i).style.color=a_color;
}
}
</script>
</head>
<body>
<table border=1 align=center>
<th>氏名</th>
<th>住所</th>
<tr onClick="HighLightTR('yellow','blue','山田太郎','東京都');" >
<td align=right>山田太郎</td>
<td align=right>東京都</td>
</tr>
<tr onClick="HighLightTR('yellow','blue','山本浩二','埼玉県');" >
<td align=right>山本浩二</td>
<td align=right>埼玉県</td>
</tr>
</table>
<form name="form1" method="post" action="">
<input type="text" name="test1">
<input type="text" name="test2">
</form>
</body>
</html>
No.1ベストアンサー
- 回答日時:
こんな感じで、グローバル変数にflgを追加(初期値0)。
表クリック時にflg=1
bodyのonclickも同時有効になるので、xx()内でflg=2
次にボディクリック時に消してflg=0
色は自分で消してね。
だけどこの記述だと、表が増えた時きつくないですか?
JavaScript側で、配列もって表の中身をonload時に作成し、
クリックされた場所を、保持しておいて、その場所だけ色変え、色戻し、にしたほうが良いのでは?
----
<html>
<head>
<script>
var preEl ;
var orgBColor;
var orgTColor;
var flg=0;
function HighLightTR(backColor,textColor,name,ken){
if(typeof(preEl)!='undefined') {
preEl.bgColor=orgBColor;
try{ChangeTextColor(preEl,orgTColor);}catch(e){;}
}
var el = event.srcElement;
el = el.parentElement;
orgBColor = el.bgColor;
orgTColor = el.style.color;
el.bgColor=backColor;
try{ChangeTextColor(el,textColor);}catch(e){;}
preEl = el;
document.form1.test1.value=name;
document.form1.test2.value=ken;
flg = 1;
}
function ChangeTextColor(a_obj,a_color){ ;
for (i=0;i<a_obj.cells.length;i++){
a_obj.cells(i).style.color=a_color;
}
}
function xxx()
{
if (flg == 2) {
document.form1.test1.value="";
document.form1.test2.value="";
flg=0;
}
else
{
flg=2;
}
}
</script>
</head>
<body onClick="xxx()">
<table border=1 align=center>
<th>氏名</th>
<th>住所</th>
<tr onClick="HighLightTR('yellow','blue','山田太郎','東京都');" >
<td align=right>山田太郎</td>
<td align=right>東京都</td>
</tr>
<tr onClick="HighLightTR('yellow','blue','山本浩二','埼玉県');" >
<td align=right>山本浩二</td>
<td align=right>埼玉県</td>
</tr>
</table>
<form name="form1" method="post" action="">
<input type="text" name="test1">
<input type="text" name="test2">
</form>
</body>
</html>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavaScriptの「.querySelectorA...
-
テーブル内のチェックボックス...
-
jQuery テキストボックス読み取...
-
ラジオボタンが選択されたらテ...
-
画面の2重起動をチェックする...
-
ラジオボタン選択でtextfieldを...
-
追加したテキストボックスとテ...
-
jQueryでテーブル行の表示・非表示
-
Javascriptで自動計算の合計の...
-
localStorageでのcheckbox制御
-
プルダウン 項目が多いので先頭...
-
<input>の選択肢をプルダウンメ...
-
TextBoxに半角数字以外を入れた...
-
【jQuery】input nameの文字列...
-
value内に変数を入れたい
-
二つの入力欄に、同時に同じ文...
-
return trueとreturn falseの用...
-
チェックボックスのON/OFFでVal...
-
JavaScriptにて動的に配列を作...
-
正規表現で複数マッチ条件で悩...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
チェックボックス付きのテーブ...
-
画面表示とともにtableの指定の...
-
JavaScriptの「.querySelectorA...
-
Javascriptの電卓で最初の何も...
-
localStorageでのcheckbox制御
-
文字数を数える際に空白、改行...
-
テーブル内のチェックボックス...
-
クリックしたラジオボタンの行...
-
複数のselect値で1つも選択され...
-
jQueryで合計を出したい
-
送信ボタン連打を抑止したいです
-
ラジオボタンが選択されたらテ...
-
ラジオボタンを一括で操作する...
-
formで項目を連結したい
-
javascriptで表(テーブル)の自...
-
同一nameの input type="text"...
-
動的に生成されるラジオボタン...
-
ボタンクリックでフォーカス移動
-
JavaScriptによる自動計算フォーム
-
選択したテーブルのセルの背景...
おすすめ情報