プロが教えるわが家の防犯対策術!

いつもお世話になります。
見よう見まねでやっている超初心者です。
下記の様なテーブル(phpで読み込んでいますので実際は動的です。)
の回答ボタンをクリックすると
テーブル下の<INPUT type="text" name="kotae">に
ボタンをクリックされた行のb列の値を入れたいと思っています。
function kaito()をどのように書いたら取得できるか悩んでいます。
初心者なもので具体的な回答でしたら助かります。
ご教授の程どうぞよろしくお願い致します。

<html>
<head>
<meta content="text/html; charset=utf-8" />
<script>


</script>

</head>

<body>

<table width="100" border="1">
<tr>
<th width="30" scope="col">a</th>
<th width="30" scope="col">b</th>
<th width="40" scope="col">c</th>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td><input type="button" value="回答" onclick="kaito()"/></td>
</tr>
<tr>
<td>5</td><td>3</td>

<td><input type="button" value="回答" onclick="kaito()"/></td>
</tr>
<tr>
<td>5</td> <td>4</td>

<td><input type="button" value="回答" onclick="kaito()"/></td>
</tr>
<tr>
<td>5</td> <td>5</td>

<td><input type="button" value="回答" onclick="kaito()"/></td>
</tr>
</table>

<INPUT type="text" name="kotae" size="12" >
</body>
</html>

A 回答 (2件)

inputはformに入れ子にしてください


こんな感じで・・・

<script>
function kaito(obj){
var v=obj.parentNode.parentNode.cells[obj.parentNode.cellIndex -1].innerHTML;
obj.form.elements["kotae"].value=v;
}
</script>
<form>
<table width="100" border="1">
<tr>
<th width="30" scope="col">a</th>
<th width="30" scope="col">b</th>
<th width="40" scope="col">c</th>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td><input type="button" value="回答" onclick="kaito(this)"/></td>
</tr>
<tr>
<td>5</td><td>3</td>

<td><input type="button" value="回答" onclick="kaito(this)"/></td>
</tr>
<tr>
<td>5</td> <td>4</td>

<td><input type="button" value="回答" onclick="kaito(this)"/></td>
</tr>
<tr>
<td>5</td> <td>5</td>

<td><input type="button" value="回答" onclick="kaito(this)"/></td>
</tr>
</table>

<INPUT type="text" name="kotae" size="12" >
</form>
    • good
    • 0
この回答へのお礼

できました!
理想のご回答ありがとうございます。
自分では到底考えられませんでした。
もっと勉強しなくてはいけませんね。
このボタンには他にも外部jabascriptを使っていたので
出来ればkaito()に付け足したかったのです。
kaito(\"$col[aaa]\",\"$col[bbb]\",this)と付け足したら
うまく行きました。
具体的な回答を頂いて大変助かりました。
恩に着ます。
本当にありがとうございました。
又何かありましたら是非よろしくお願い致します。

お礼日時:2011/08/10 09:02

てーぶるは、 form ようそでかこんでください。


input についている、onclick="kaito()"は、さくじょしてください。
したのこーどの、ぜんかくくうはくは、はんかくにしてください。
IE8いかは、かんべんしてください。

ばぶりんぐするいべんとは、おやでかんしできるよ。


function getTr (n) {
 return n ? ('TR' === n.nodeName) ? n: arguments.callee (n.parentNode) : null;
}


function kaito (event) {
 var e = event.target;
 var r;

 if (('INPUT' !== e.nodeName) ||
   ('button' !== e.type) ||
   ('回答' !== e.value)) return;
 
 if (r = getTr (e))
  e.form.elements['kotae'].value = r.cells[1].textContent;
}

document.addEventListener ('click', kaito, false);
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
これでもいけるんですね。
ただ、これだと私の知識不足で
buttonのkaito()に外部javascript
どうしたら呼び出せられるのか解りませんでした。
実はkaito()には他の外部javascriptもあったので、
出来ればに付け足したかったのです。
頂いたご回答は私には到底考えられないものです。
具体的な回答を頂いて大変感謝いたします。
これを解析できるようもっと勉強しなくてはいけませんね。
本当にありがとうございました。
又何かありましたら是非よろしくお願い致します

お礼日時:2011/08/10 09:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!