这就是我需要做的全部事情
首先要确认用户是否要添加课程,如果单击“确定”,则会提示用户输入课程,如果单击“取消”,则程序完成。
当用户给出课程答案时,他们需要为特定课程给出分数。
完成这两个问题后,需要回头问他们是否要重新添加课程
这是我到目前为止所拥有的
while (true) {
var entering = confirm('Do you want to enter a Course?');
if (entering = true) {
break;
}
}
var codeInput = '';
var gradeInput = '';
while (true) {
codeInput = prompt('Enter Course Code');
if (codeInput.length === 7) {
break;
}
alert('invalid code');
}
gradeInput = prompt('Enter Grade for ' + codeInput + '');
document.writeln('<table border="1">');
document.writeln('<tr>');
document.writeln('<th>Course Code</th>');
document.writeln('<th>Grade</th>');
document.writeln('<tr>');
document.writeln('<th>' +
codeInput +
'</th>');
document.writeln('<th>' +
gradeInput +
'</th>');
document.writeln('</tr>');
因此,当我询问是否要添加另一门课程时,单击“取消”时,我不确定如何将其循环回到起点,以及如何使程序停止。我也不知道该怎么做,因此,如果用户要求输入另一门课程/年级,如何使它们成为一个单独的答案,以添加到下表中。
我希望这是有道理的,如果有人可以帮助,那就太好了!
ps。这必须全部使用JavaScript而不是HTML来完成。
答案 0 :(得分:1)
将您的代码包装在一个函数中,这样您每次输入grad即可再次调用它。
我建议创建表和表头,然后在用户回答提示时附加行:
var number_of_rows = 0;
var table = document.createElement('table');
table.border = '1';
ask();
function ask() {
var codeInput = '';
var gradeInput = '';
var entering = confirm('Do you want to enter a Course?');
if (!entering) {
return;
} else {
while (true) {
codeInput = prompt('Enter Course Code');
if (codeInput.length === 7) {
break;
}
alert('invalid code');
}
}
gradeInput = prompt('Enter Grade for ' + codeInput + '');
if (number_of_rows === 0) {
var row = document.createElement('tr');
var th_1 = document.createElement('th');
var th_2 = document.createElement('th');
var txt_1 = document.createTextNode("Course Code");
var txt_2 = document.createTextNode("Grade");
th_1.appendChild(txt_1);
th_2.appendChild(txt_2);
row.appendChild(th_1);
row.appendChild(th_2);
table.appendChild(row);
number_of_rows++;
}
console.log(number_of_rows);
table = insertRow(codeInput, gradeInput);
document.body.appendChild(table);
number_of_rows++;
ask();
}
function insertRow(codeInput, gradeInput) {
var row = document.createElement('tr');
var td_1 = document.createElement('td');
var td_2 = document.createElement('td');
var txt_1 = document.createTextNode(codeInput);
var txt_2 = document.createTextNode(gradeInput);
td_1.appendChild(txt_1);
td_2.appendChild(txt_2);
row.appendChild(td_1);
row.appendChild(td_2);
table.appendChild(row);
return table;
}
答案 1 :(得分:0)
根据此处https://developer.mozilla.org/en-US/docs/Web/API/Window/prompt
如果用户单击“取消”按钮,则此函数返回null
因此,您所需要做的就是检查value是否为null以便了解用户是否单击了取消
if (codeInput == null) break