スペルの練習に使用する Web ページを作成しました。次のように SQL からすべてを表示します。
public void FillPageSpelling()
{
ArrayList videoList1 = new ArrayList();
if (!IsPostBack)
{
videoList1 = ConnectionClass.GetSpelling(1);
}
else
{
int i = Convert.ToInt32(DropDownList1.SelectedValue);
videoList1 = ConnectionClass.GetSpelling(i);
}
StringBuilder sb = new StringBuilder();
foreach (Spelling sp in videoList1)
{
sb.Append(
string.Format(
@"<table class='VideoTable'>
<tr>
<td align='center'><font face='Verdana'> <font size='3'>Level:</font> <font size='2'>{3}</font></font></td>
</tr>
<tr>
<td align='center'><font face='Verdana'> <font size='3'>Sentence:</font> <font size='2'>{1}</font></font></td>
</tr>
<tr>
<td align='center'><font size='3'>Sound:<audio controls><source src=sound/{2}></audio>
<font face='Verdana'> <font size='2'> </font> </font></td>
</tr>
<tr>
<tr><td align='center'><font face='Verdana'> <font size='3'>Write the word here: <input type=text id=TextBox1></font></font> </td> </tr>
<td><input type=button value='Check' class='p-userButton' onClick='ButtonClick(document.getElementById(""TextBox1"").value, document.getElementById(""TextBox2"").value);'/></td>
<td><input type=button value='Cheat' class='p-userButton' onClick='Cheat(document.getElementById(""TextBox2"").value);' </td>
</tr>
<tr>
<td align='center'><font face='Verdana'><input type=text style=display:none id=TextBox2 value={4}></td>
</tr>
</br>
</table>", sp.SID, sp.Sentence, sp.Audio, sp.Level, sp.Word));
lblOutput.Text = sb.ToString();
}
ドロップダウン リストでレベル 2 を選択すると、次のようになります。
これは、単語が適切かどうかをチェックする JavaScript 関数です。
<script type="text/javascript">
function ButtonClick(a, b)
{
if (a.toString() == b.toString())
{
alert("Correct!");
}
else
{
alert("Wrong!");
}
}
</script>
これは、ボタンを作成して関数を呼び出す方法です。
<input type=button value='Check' class='p-userButton' onClick='ButtonClick(document.getElementById(""TextBox1"").value, document.getElementById(""TextBox2"").value);'/>
さて、これは最初の文ではうまく機能しますが、その下の 2 番目の文に移動し、テキストボックスに単語を入力すると、2 番目の文ではなく最初の文のみがチェックされます。
どうすればこれを解決できますか?