Javascript 仅使用一个

Javascript 仅使用一个,javascript,Javascript,onchange事件工作得很好,可以很好地填充我的输入文本框,但是当onchange事件应用于只有一个选项的下拉框时,它就不起作用了。即使有一个或多个项目,如何使onchange启动 <!DOCTYPE html> <html> <head> <style type="text/css"> </style> <script type="text/javascript"> function test(x) {

onchange事件工作得很好,可以很好地填充我的输入文本框,但是当onchange事件应用于只有一个选项的下拉框时,它就不起作用了。即使有一个或多个项目,如何使onchange启动

<!DOCTYPE html>

<html>

<head>

<style type="text/css">

</style>

<script type="text/javascript">
function test(x) {

    var x = document.getElementById(x).options[document.getElementById(x).selectedIndex].text

    document.getElementById('output').value = x

}//end of function
</script>

</head>

<body>
<select id="drop1" onchange="test(this.id)">
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="mercedes">Mercedes</option>
  <option value="audi">Audi</option>
</select>
<br><br>
<select id="drop2" onchange="test(this.id)">
  <option value="volvo">Volvo</option>
</select> 
<br><br>
<input type="text" id="output">

</body>

</html>

如果只有一项,它永远不会改变。试试模糊。或者单击onclick,这取决于您实际要执行的操作。

您可以在每个选择框的顶部添加一个空选项,或者一个只显示-select-的选项。然后,如有必要,修改脚本以忽略空选择。

我正在回答这个问题,以防它能在2020年帮助某人。我遇到了同样的问题,将数据库中的数据填充到只有一个数据的表单中,我能够用这种方法解决。在这个例子中,我将用它来做插图

首先,必须使用函数清空select元素

$('#drop2').empty();
其次,使用select将空值添加到select中

之后,您可以继续将数据添加到select元素中,因为它们将是两个选项,一个为空,另一个携带数据

最后,使用in success函数以这种方式从服务器填充数据

success:function(response){
                        $('#drop2').empty().append("<option value='0'>Select</option>");
                        response.forEach((item)=>{
                            $('#drop2').append("<option value='"+item[]+"'>"+item[1]</option>");

                        });

我使用了.forEach

我就是不知道,当只有一个可用选项时,如何更改选项?“drop2”只有一个选项。如果我选择它,我希望该值显示在我的文本框中。该值是如何填充的?在服务器上,还是通过JavaScript?好的,gilly3对此有一个很好的答案,除了他的建议之外,还可以使用onfocus。
success:function(response){
                        $('#drop2').empty().append("<option value='0'>Select</option>");
                        response.forEach((item)=>{
                            $('#drop2').append("<option value='"+item[]+"'>"+item[1]</option>");

                        });