HTML - JavaScript jQuery - form を後付けで作成

 クラウディア
1. 概要
2. form を後付けで作成

1. 概要

 「PHP」の「Laravel」のようなフレームワークで、動的に作成するテーブルがあるとして

</pre><table class="list">
<tr><th></th>	<th></th>	<th></th>	</tr>

・・・	略	・・・

<tr><td></td>	<td></td>	<td></td>	</tr>
</table><pre>
 行全体で、クリックするとリンクを発生させたい。  というような場面があります。少なくとも、わたしにはある。  これいちいち

<tr onclick="location.href='リンク先'">
 と書いたり

<form action="">
</pre><table class="list">
<tr><th></th>	<th></th>	<th></th>	</tr>

・・・	略	・・・

<tr><td></td>	<td></td>	<td></td>	</tr>
</table><pre>
</form>
 と書いておいて

<tr onclick="関数('リンク先')">
 と書く手もありますが、わたしには、長ったらしくて、面倒。  こういうとき、「form」を後付けで作成する方法があります。

2. form を後付けで作成

 関数名を仮に「myfunction」としておいて、「.html」としては、前後を「form」ではさんだりせずに

<tr onclick="関数('リンク先')">
 とだけ書いておきます。  関数で

function myfunction(link)
{
	var form = document.createElement('form');
	form.action = link;
	form.method = 'GET';

	document.body.appendChild(form);
	form.submit();
}
 とだけ書いておけば、いちいち「tr」にネーミング付けしたりせずに、「form」を作成して実行することができます。  もちろん場合によって、「method」は「POST」にしてもいいわけです。  わたしは、こうすることで、コーディングが楽になりました。
earthcar(アースカー)