Javascript选择更改并不首先尝试

时间:2016-09-13 16:56:11

标签: javascript html

我有HTML代码:

<select id = "dropdownList" onchange = "dropdownChange()">
        <option> Choose a vendor </option>
    </select>

使用功能:

function dropdownChange(){

document.querySelector("#dropdownList").addEventListener("change",function(e){

changeVendor(this.value);
})
}

下拉列表已经从另一个函数中的数组中填充。当首次从下拉列表中选择一个项目时,它不会触发。但是,第一次发生后的任何更改都会触发。

如何编辑我的代码,以便当我第一次从下拉列表中选择一个项目时,它会立即启动?

2 个答案:

答案 0 :(得分:3)

这是您当前代码的工作方式:

  1. 第一次发生更改事件时,dropdownChange()会运行,因为它会在元素的onchange属性中调用。

  2. dropdownChange()现在注册一个事件监听器并返回,不执行任何其他操作。

  3. 在下一次更改时,dropdownChange()注册的事件侦听器会运行并调用changeVendor(this.value)

  4. 你可能想要:

    function dropdownChange() {
        changeVendor(this.value);
    }
    

    您还可以直接在changeVendor(this.value)中致电onchange,如果您想避免创建dropdownChange()功能,只需在其中调用changeVendor()

    <select onchange="changeVendor(this.value)">
        <option>Choose a vendor</option>
    </select>
    

答案 1 :(得分:0)

您可以像下面一样使用它,在选择时传递值。

<select id = "dropdownList" onchange = "dropdownChange(this.value)">
    <option> Choose a vendor </option>
    <option value="test"> test </option>
    <option value="test1"> test1 </option>
</select>

javascript应该像下面这样。

 function dropdownChange(value) {
        alert(value);

    }