页面上有一文本框,可以输入文本,还有一按钮,单击时可以将文本框的内容添加下拉列表中。若文本框没有内容,添加时会给出提示“请输入内容”,若要添加的内容已经在列表中,也需要提醒“已有”并将焦点定位至文本框。
时间: 2024-02-24 14:00:02 浏览: 54
好的,以下是您需要的HTML代码和JavaScript代码:
```
<!DOCTYPE html>
<html>
<head>
<title>下拉列表</title>
<meta charset="utf-8">
<style>
.container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100vh;
}
.textbox {
width: 300px;
height: 30px;
margin-bottom: 20px;
padding: 5px;
font-size: 16px;
border-radius: 5px;
border: 1px solid #ccc;
}
.button {
width: 100px;
height: 30px;
background-color: #007bff;
color: #fff;
border-radius: 5px;
border: none;
cursor: pointer;
font-size: 16px;
}
.selectbox {
width: 300px;
height: 30px;
padding: 5px;
font-size: 16px;
border-radius: 5px;
border: 1px solid #ccc;
}
</style>
</head>
<body>
<div class="container">
<input type="text" class="textbox" placeholder="请输入内容">
<button class="button" onclick="addOption()">添加</button>
<select class="selectbox" multiple></select>
</div>
<script>
function addOption() {
var content = document.querySelector(".textbox").value.trim();
if (content === "") {
alert("请输入内容");
document.querySelector(".textbox").focus();
return;
}
var options = document.querySelectorAll(".selectbox option");
for (var i = 0; i < options.length; i++) {
if (options[i].value === content) {
alert("已有");
document.querySelector(".textbox").focus();
return;
}
}
var option = document.createElement("option");
option.value = content;
option.innerHTML = content;
document.querySelector(".selectbox").appendChild(option);
document.querySelector(".textbox").value = "";
}
</script>
</body>
</html>
```
以上代码中,我们使用了`querySelector`和`querySelectorAll`方法来获取页面元素,使用`createElement`方法来创建`option`元素,并使用`appendChild`方法将其添加到`select`元素中。在添加时,我们先判断文本框是否为空,如果为空则给出提示并将焦点定位到文本框;如果要添加的内容已经在下拉列表中,则也给出提示并将焦点定位到文本框;否则创建新的`option`元素并添加到下拉列表中。
阅读全文