当前位置: 首页 > 知识库问答 >
问题:

如何在javascript的组合框中单击它来选择一个项目?

缑勇锐
2023-03-14

我的情况是,我有一个comb-Box,通过javascript动态地填充整数值。

问题是当我点击项目选择它时,它仍然没有被选中,点击该项目后,我需要再次点击组合框外才能选中它。我不知道为什么?

我这样做的代码是(它是内表):

 <body onload="loadView();">
       <table>
         <tr>
             <td>
               <select id="mydropdown" name="mydropdown" onblur="comboItemselect(this)"></select>
             </td>
         </tr>
       </table>
    </body>

我如何填充组合中的项目是这样的:

   function loadView()
            {
                var sel = document.getElementById('mydropdown') // find the drop down
                for (i = 1; i <= 50; i++) { // loop through all elements
                    var opt = document.createElement("option"); // Create the new element
                    opt.value = i; // set the value
                    opt.text = i; // set the text
                    sel.appendChild(opt); // add it to the select
                }
            }

            /*When an item is selcted from CoboBox*/
            function comboItemselect(item)
            {
                var selectedItem = item.options[item.selectedIndex];   
              alert("selected item is : " +selectedItem);
            }

我以前在wpf或任何其他应用程序中所做的是,我只是在combobox中单击要选择的项目,它就被选中了,但为什么我需要在项目上单击一次,然后在combobox外再次单击才能选中它呢?如何在组合框项目上单击一次来选择项目

共有2个答案

高宸
2023-03-14

你很接近了你需要做的就是改变

var selectedItem = item.options[item.selectedIndex];  

var selectedItem = item.value;

对于任何元素,只需使用

<variable>.id
<variable>.value

至于外面的点击,这是因为你有模糊,这意味着在失去焦点之后。因此,它将在您单击选择框后调用该函数。您可以将其添加到.click函数中。JQuery更适合此操作,因为您可以执行<code>onClick</code>事件来初始化您的select,并且可以执行<code>onChange</code>事件来获取所选项目

欧阳君浩
2023-03-14

将事件从onblur更改为onclick。它将正常工作

function loadView() {
  var sel = document.getElementById('mydropdown') // find the drop down
  for (i = 1; i <= 50; i++) { // loop through all elements
    var opt = document.createElement("option"); // Create the new element
    opt.value = i; // set the value
    opt.text = i; // set the text
    sel.appendChild(opt); // add it to the select
  }
}

/*When an item is selcted from CoboBox*/
function comboItemselect(item) {
  var selectedItem = item.options[item.selectedIndex];
  alert("selected item is : " + selectedItem.value);
}
<body onload="loadView();">
  <table>
    <tr>
      <td>
        <select id="mydropdown" name="mydropdown" onchange="comboItemselect(this)"></select>
      </td>
    </tr>
  </table>
</body>
 类似资料:
  • 所以,我有一个奇怪的问题,我从组合框列表中选择一个项目,为了填充第二个组合框,我必须首先从第一个组合框中再次选择单词,而不是从项目列表中,而是单词本身。只有这样,代码才会注册我选择了该项目。我拥有的代码是简单的$variable.SelectedItem。参见下面的代码; 我想做的就是从下拉列表中选择位置“医院”,然后第二个名为“$ComboBox_Printer”的组合框填充我服务器中的打印机名

  • 这是我第二次发布相同的问题,直到现在都没有得到答案。 我有一个组合框,下面是商店(ExtJs 2.3) 组合存储: 分配 会议 工资 我在键上过滤组合,这样“薪水”项就不会显示在列表中,它工作正常。但是由于组合框项也可以通过键入iside combobox来选择,所以我在组合框的keyUp和beforeQuery上编写了以下代码。 这成功地过滤掉了“薪水”选项,但现在我无法像以前一样通过键入内部组

  • 日安, 我希望我的组合框选择其中的第一个项目。我正在使用C#和WPF。我从DataSet读取数据。要填充组合框: 组合框XAML代码: 如果我尝试: 它不起作用。

  • 我的HTML代码有一个div标记,其角色为combobox,即。 我试图通过selenium驱动程序和java从组合框中选择一个项目。 我尝试使用"选择"类推荐在这里:如何选择一个下拉值在Selenium WebDriver使用Java 但既然是div,我就错了 msgstr"未预料到的TagNameException:元素应该被选择,但被div" 我认为这是因为div role=“combobo

  • 问题内容: 我们正在使用Selenium WebDriver和JBehave在我们的Web应用程序上运行“集成”测试。我有一种方法,可以在表单输入中输入一个值。 但是,当我尝试使用它在下拉列表中选择一个项目时,它(毫无疑问)失败了 java.lang.UnsupportedOperationException:您只能设置作为输入元素的元素的值 如何在组合中选择一个值? 问题答案: 这是怎么做的:

  • 我在后台有< code>ViewModel(实现< code > INotifyPropertyChanged )和类< code>Category,它只有一个< code>string类型的属性。我的ComboBox SelectedItem绑定到类别的实例。当我更改instance的值时,SelectedItem没有更新,Combobox也没有更改。 编辑:代码 组合框: 物业: 我尝试的是: