1

私は数学の生徒のためにコンピューターで生成された数学の練習を作成し、その戦略を他の数学の教師と共有しようとしています. 奇妙なプログラミングの問題に遭遇しました。問題は、リストボックスとテキストボックスの両方に同じ ID を使用する必要があることです。どちらもアプリに同時に存在することはなく、新しい質問がランダムに生成されるときは一度に 1 つだけです。スクリプト ファイルのコピーは次のとおりです

そして、エラーが存在する Web アプリのバージョンは次のとおりです

このコードは、質問の生成関数からのものです。

else if(questionType == 4)
{ 
  if (a==0){a=a+1;}
  if (b==0){b=b+2;}
  if (c==0){c=c+3;}
//Listbox input  
var userInput = app.createListBox().addItem(a).addItem(eval(a-3)).setWidth(250).setStyleAttribute("fontSize", "24").setId('userInput').setName('userInput').setStyleAttribute('color', 'gray');

var correctAnswer = app.createTextBox().setName('correctAnswer').setId('correctAnswer');
var solution = eval(a-3);
correctAnswer.setValue(solution);
}
else if (questionType == 5)
{
  if (a==0){a=a+1;}
  if (b==0){b=b+2;}
  if (c==0){c=c+3;}
    //Textbox input
var userInput = app.createTextBox().setWidth(100).setStyleAttribute("fontSize", "24").setName('userInput').setStyleAttribute('color', 'gray').setValue('answer').setId('userInput');
var correctAnswer = app.createTextBox().setName('correctAnswer').setId('correctAnswer');
var solution = eval(a-c);
correctAnswer.setValue(solution);

}

アプリから最後のユーザー入力ボックスを削除するためにこの関数が再度呼び出された場合、どうすればよいですか? 作成された2番目の質問が最初の質問とは異なる入力タイプである場合にのみ、エラーが発生します。

4

1 に答える 1

0

リストボックスとテキストボックスに同じIDを使用するとエラーが発生することがわかりました。UiApp では、一度に 1 つしか表示されませんが、最初に生成された質問の種類 (テキスト ボックスなど) が何であれ、次に生成された質問がリスト ボックスである場合、またはその逆の場合にエラーが発生します。生成されたすべての質問が同じユーザー入力である場合、エラーは発生しません (すべての質問がリストボックスを介してユーザー入力を収集する場合など)。採点問題機能を起動するときは、両方の ID を同じにする必要があります。フォローアップの質問は、最後の入力タイプの残りをアプリから削除して、エラーが発生しないようにする方法だと思いますか? getElementById でユーザー入力を削除しようとしましたが、うまくいかないようです。

于 2013-10-31T12:28:17.077 に答える