以下を使用する関数があります。
name = "textBox" + (h) + (j);
id = "textBox" + (h) + (j);
value = hoursEachDay[j-1];
textBox = "<input type='text' maxlength='6' size='6' name='" + name + "'id='"+ id +"' value='" + value + "' onchange='updateHrs()'>";//or parent.updateHrs(j)
(h、i、j は整数) 最初の関数の直後に続く別の関数を呼び出します。その機能は次のとおりです。
function updateHrs()// or updateHrs(dayOfMonth)
{
alert("This is the day changed ");
//or alert("This is the day changed " + dayOfMonth);
return;
}
これを実行して onchange イベント ハンドラーをトリガーすると、firebug から「関数が定義されていません」というエラーが表示されます。同僚の提案で、updateHrs() を parent.updateHrs() に変更しました。これは、updateHrs() 関数に変数を渡そうとするまで、何らかの理由で実際に機能します (上でコメントアウトされているように)。 updateHrs(j) が定義されていないことを宣言するポイント。
どういうわけか updateHrs 関数が範囲外として読み取られていると推測していますが、その方法はよくわかりません。これらの関数は両方ともすぐ後にあり、両方ともタグのすぐ前にあります (はい、それらの上にもタグがあります)。したがって、スコープの問題はありません。
ご協力いただきありがとうございます。