次の部分的に完成したコード例では、任意のテーブル セルをクリックすると最初のinput
テキスト ボックスにデータが入力されます。2 番目と 3 番目の入力フィールドに入力するには、テーブルを 2 番目と 3 番目にクリックしてください。そして、4 番目のテキスト セルをクリックすると、最初のフィールドから値を入力してカウント オーバーを開始します。
この関数には、ページが最初に読み込まれるときに最初のマウス クリックを認識しないという小さなバグもあります。最初のフィールドに入力するには、2 回目のクリックが必要です。
これを解決し、そこから学ぶのを手伝ってくれてありがとう。:)
<html>
<head>
<style>
td:hover { cursor: hand; color: blue; font-weight: bold; background: #FFDE00; }
</style>
</head>
<body >
<p>Click on a cell to have it populate the text fields below<p>
<table border="1" onclick="populateFields()" style=font-size:11; cellspacing="1" cellpadding="5">
<tr><td>apple</td><td>orange</td><td>banana</td><td>peach</td></tr>
<tr><td>tomato</td><td>potato</td><td>onion</td><td>garlic</td></tr>
<tr><td>chicken</td><td>fish</td><td>beef</td><td>pork</td></tr>
</table>
<form>
<p>The cells you clicked on contain this data:</p>
<input type="text" name="item1" id="txtCellData"></input>
<input type="text" name="item2" id="textCellData2"></input>
<input type="text" name="item3" id="textCellData3"></input>
</form>
<script>
function populateFields(){
//put all tds in an array
var alltds = document.getElementsByTagName("td");
//go through each item in the array
for (var i in alltds) {
alltds[i].onclick = function (){
txtCellData.value = this.innerHTML;
}
}
}
function setThis(value) {
document.getElementById("txtCellData").value = value;
}
</script>
</body>
</html>