我已经设置了这个待办事项列表,几乎所有东西都完美无缺.但是,如果我删除列表中的所有内容.它不会让我添加一个新的条目,我似乎无法弄明白为什么.只要我在列表中至少有一个条目,它就可以正常工作.
非常感谢任何帮助,谢谢.
< head >
< script type = "text/javascript" >
/*
function addTask() {
if (document.forms[0].newtask.value == "")
window.alert("You must enter a value in the New Task field.");
else {
if (document.forms[0].tasks.options[0].value == "tasks")
document.forms[0].tasks.options[0] = null;
var newTask = new Option();
newTask.value = document.forms[0].newtask.value;
newTask.text = document.forms[0].newtask.value;
var numTasks = document.forms[0].tasks.options.length;
document.forms[0].tasks.options[numTasks] = newTask;
document.forms[0].newtask.value = "";
}
}
function deleteTask() {
var selectedTask = 0;
var taskSelected = false;
while (selectedTask < document.forms[0].tasks.length) {
if (document.forms[0].tasks.options[selectedTask].selected == true) {
taskSelected = true;
break;
}
++selectedTask;
}
if (taskSelected == true)
document.forms[0].tasks.options[selectedTask] = null;
else
window.alert("You must select a task in the list.");
}
function ascendingSort() {
var newTasks = new Array();
for (var i = 0; i < document.forms[0].tasks.length; ++i) {
newTasks[i] = document.forms[0].tasks.options[i].value;
}
newTasks.sort();
for (var j = 0; j < document.forms[0].tasks.length; ++j) {
document.forms[0].tasks.options[j].value = newTasks[j];
document.forms[0].tasks.options[j].text = newTasks[j];
}
}
/*]]>*/
< /script>
To Do List< /head>
To Do List
New Task
Tasks
解决方法:
当您删除所有任务时,您将选择一个空的,没有选项.
您需要在addTask函数中保护您的条件
document.forms[0].tasks.options.length > 0
像这样的东西:
if (document.forms[0].tasks.options.length > 0 && document.forms[0].tasks.options[0].value == "tasks")
document.forms[0].tasks.options[0] = null;
标签:javascript,arrays,sorting,forms,html
来源: https://codeday.me/bug/20190703/1362706.html