javascript - 在输入框中键入其他选项值后,将其添加到选择框

标签 javascript html

我需要你的帮助。

下面有以下代码,如果在输入框中键入一个值后仅将一个值添加到选择框中(因此使其成为可编辑的选择框),那么如果键入另一个值,则该代码可以很好地工作在输入框中,选择框的内容更改为新输入的值。

我想修改下面的代码,以便允许将其他输入的值添加到选择框中。

<html> 

<style> 

#list { 
    left: expression(this.previousSibling.offsetLeft); 
    width: expression(this.previousSibling.offsetWidth);  
    clip: expression("rect(2px auto 20px " + (this.previousSibling.offsetWidth - 20) + "px)"); 
    overflow: hidden;
    position: absolute;
    top: -1px;
    font-size: 9pt;
    font-family: Arial;
}
#wrapper {
    border: 1px solid blue;
    display: block;
    position: relative;
    width: 180px;
    height: 20px;
}
#text1 {
    border: 0;
    height: 18px;
    width: 180px;
    position: relative;
    font-size: 9pt;
    font-family: Arial;
    padding: 2px;
}
</style> 

<script language="javascript"> 
function getval() {
var select = document.getElementById('list')

    document.getElementById('text1').value = select.options[select.selectedIndex].text

}//end of function

var oNewOption = null;

function AddListItem(oInput) {

var oSelect = oInput.nextSibling;

if (oNewOption == null) {
oNewOption = document.createElement("OPTION");
oSelect.options.add(oNewOption);
}

oNewOption.text = oInput.value;
oNewOption.value = oInput.value;

}

</script> 
<body> 

<div id="wrapper">
<input id="text1" type="text" onkeyup="AddListItem(this)"><select id="list" onchange="getval()"> 
</select>
</div>

</body> 
</html>

最佳答案

为了做到这一点,我必须将 onkeyup 更改为 onchange。因此,只有在输入元素失去焦点后才会添加该选项。

<html> 

<style> 

#list { 
    left: expression(this.previousSibling.offsetLeft); 
    width: expression(this.previousSibling.offsetWidth);  
    clip: expression("rect(2px auto 20px " + (this.previousSibling.offsetWidth - 20) + "px)"); 
    overflow: hidden;
    position: absolute;
    top: -1px;
    font-size: 9pt;
    font-family: Arial;
}
#wrapper {
    border: 1px solid blue;
    display: block;
    position: relative;
    width: 180px;
    height: 20px;
}
#text1 {
    border: 0;
    height: 18px;
    width: 180px;
    position: relative;
    font-size: 9pt;
    font-family: Arial;
    padding: 2px;
}
</style> 

<script language="javascript"> 
function getval() {
var select = document.getElementById('list')

    document.getElementById('text1').value = select.options[select.selectedIndex].text

}//end of function

var oNewOption = null;

function AddListItem(oInput) {

var oSelect = oInput.nextSibling;


oNewOption = document.createElement("OPTION");
oSelect.options.add(oNewOption);


oNewOption.text = oInput.value;
oNewOption.value = oInput.value;
oNewOption.selected = true;

}

</script> 
<body> 

<div id="wrapper">
<input id="text1" type="text" onchange="AddListItem(this)"><select id="list" onchange="getval()"> 
</select>
</div>

</body> 
</html>

关于javascript - 在输入框中键入其他选项值后,将其添加到选择框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18901418/

相关文章:

html - 两个 div 中的段落对齐,它们之间有一个图像

php - 如何在数据库中检索图像并在图像为空时显示头像

javascript - 如何从 xml 响应字符串创建新行

javascript - 如何从网站提取音频

javascript - 一页上有多个 Ajax 添加到购物车表单

javascript - 使用 javascript 将文件保存在硬盘上

javascript - Node.js 域在连接时显示来自数据库的事件消息

javascript - 如何只打开一个弹出窗口

html - <li> 元素上的元素符号来自哪里?

php - 页脚没有显示我想要的方式