Не зная точно, что вы пытаетесь достичь, вот решение, которое я придумал для вас:
function myFunction(prompt_text) {
var txt;
var list;
var person;
if (prompt_text != '' && prompt_text != undefined) {
person = prompt(prompt_text);
} else {
person = prompt("Please enter the name of your record list:");
}
if (person == null || person == "") {
txt = "";
} else {
txt = '<li>' + person + "</li>";
}
if (txt != '') {
document.getElementById("myRecords").innerHTML += txt;
} else if(person != null){
myFunction("Names cannot be blank, please enter the name of your record list:");
} else {
return;
}
}
<ul id="myRecords"></ul>
<a id="create" onclick="myFunction()">Create RecordList</a>
Я изменил контейнер, в который вы помещаете данные, чтобы он был неупорядоченным списком <ul></ul>
, чтобы упростить создание в нем нескольких записей, и автоматически добавил <li></li>
DOM, чтобы список выполнял все работа для вас.
Я также изменил функцию, чтобы принимать prompt_text
в качестве параметра, чтобы вы могли рекурсивно вызывать функцию, если они не вводят текст.
РЕДАКТИРОВАТЬ: обновил код для понимания null
, возвращаемого, когда пользователь нажимает кнопку отмены, что устраняет ошибку, созданную кодом, который я первоначально опубликовал.
Последнее изменение - это рекурсивный вызов функции, о котором я упоминал выше. Если переменная txt
пуста, функция вызывает себя с новым prompt_text
, позволяющим сообщить пользователю, ПОЧЕМУ он не сделал этого правильно, а также дает ему еще одну возможность исправить это.