我正在为我的数学学生创建计算机生成的数学练习,并尝试与其他数学老师分享策略。我遇到了一个奇怪的编程问题。问题在于我需要为列表框和文本框使用相同的ID。两者都不会同时出现在应用程序中,每次只有一个随机生成新问题。这是脚本文件的副本: https://script.google.com/d/1GrswqbSU55vEzWD2V5dJyI95tBbFtNpn0OrnVK7FbbQVm5NpGvqhC_H5/edit?usp=sharing
这是一个存在错误的Web应用程序版本: https://script.google.com/macros/s/AKfycbxfpZdZNNZWUU0KX-nicM27FtliatwCEkwOQ-bhTEu5LHLMDJo/exec
此代码来自生成问题函数:
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);
}
当再次调用此函数从应用程序中删除最后一个用户输入框时,我应该怎么做?当第二个问题创建的输入类型与第一个问题不同时,它只会给我一个错误。
答案 0 :(得分:0)
事实证明,错误来自于对列表框和文本框使用相同的ID。在UiApp中,一次只显示一个,但是首先生成任何问题类型,例如文本框,当下面生成的问题是列表框时,错误就会出现,反之亦然。如果生成的所有问题都是相同的用户输入,则错误永远不会发生(例如,如果所有问题都通过列表框收集用户输入)。启动分数问题功能时,我需要两者的ID相同。 我想跟进的问题是如何从应用程序中删除最后一个输入类型的残余,以便错误停止发生?我已经尝试通过getElementById删除用户输入,但它似乎不起作用。