なぜかエラーが…



0   名前:  : 2006/02/18 15:07
以下にソースを載せます。あ〜んのボタンをつくりそれを押したら、
その文字が出力されるというソースを作ろうと思ったのですが
うまくいきません。
document.F1.T1.value += ",Kana[j][i],"'></td>");
のKanaのところで引っかかってるようですが原因が分かりません。
教えてください。

<HTML>
<HEAD>
<script type="text/javascript">
<!--
Kana = new Array();
Kana[0] = new Array("あ","い","う","え","お");
Kana[1] = new Array("か","き","く","け","こ");
Kana[2] = new Array("さ","し","す","せ","そ");
Kana[3] = new Array("た","ち","つ","て","と");
Kana[4] = new Array("な","に","ぬ","ね","の");
Kana[5] = new Array("は","ひ","ふ","へ","ほ");
Kana[6] = new Array("ま","み","む","め","も");
Kana[7] = new Array("や"," ","ゆ"," ","よ");
Kana[8] = new Array("ら","り","る","れ","ろ");
Kana[9] = new Array("わ","ゐ"," ","ゑ","を");
Kana[10] = new Array("ん","゛","゜");
// -->
</script>
<TITLE></TITLE>
</HEAD>
<BODY>
<form name="F1">
<input type="text" name="T1" size="100">
<script type="text/javascript">
<!--
document.write("<table>");
for(i = 0;i < 5 ; i++){
document.write("<tr>");
for(j = 0;j < 10 ; j++)
document.write("<td><input type = 'button' value = ",Kana[j][i],
"  onClick ='document.F1.T1.value += ",Kana[j][i],"'></td>");
document.write("</tr>");
}
// -->
</script>
</form>
</BODY>
</HTML>

1   名前: m035 : 2006/02/18 15:07  [URL
文字のくくり方が悪いようですね。
あなたのソースだとたとえばj=0,i=0のときに以下のそうなソースが書き出されます。
<td><input type = 'button' value = "あ
"  onClick ='document.F1.T1.value += あ'></td>
つまり、onclickの中での「あ」と言う文字が囲まれていない訳です。
3つ目のdocument.writeを以下の二つの方法のいずれかにすればいいです。


方法1(\によって"をエススケープ)
document.write("<td><input type = 'button' value = ",Kana[j][i],
"  onClick ='document.F1.T1.value +=\"",Kana[j][i],"\"'></td>");

方法2(onclickでkana[j][i]を参照するようにj,iを定数として埋め込む)
document.write("<td><input type = 'button' value = ",Kana[j][i],
"  onClick ='document.F1.T1.value +=Kana[",j,"][",i,"]'></td>");

一覧へ戻る