Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选择一个<;选项>;从a<;选择>;在Google Chrome中使用JavaScript_Javascript_Html Select_Addeventlistener_Domcontentloaded - Fatal编程技术网

选择一个<;选项>;从a<;选择>;在Google Chrome中使用JavaScript

选择一个<;选项>;从a<;选择>;在Google Chrome中使用JavaScript,javascript,html-select,addeventlistener,domcontentloaded,Javascript,Html Select,Addeventlistener,Domcontentloaded,我试图让JavaScript监听选择了选项的事件。一旦JavaScript知道我点击了其中一个选项,它就应该更新submit按钮的功能。它非常类似于一个老式的onclick=“”内联到每个选项中,但在一个更安全的设置中(在Chrome中似乎也不起作用)。这是我的一小段代码,它可以在Firefox中使用,也就是说,但不能在Chrome中使用。 HTML: <select> <option id="zero"&

我试图让JavaScript监听选择了选项的事件。一旦JavaScript知道我点击了其中一个选项,它就应该更新submit按钮的功能。它非常类似于一个老式的onclick=“”内联到每个选项中,但在一个更安全的设置中(在Chrome中似乎也不起作用)。这是我的一小段代码,它可以在Firefox中使用,也就是说,但不能在Chrome中使用。

HTML:

                <select>
                    <option id="zero">--</option>
                    <option id="one">Choice one</option>
                    <option id="two">Choice Two</option>
                    <option id="three">Choice Three</option>
                  </select>

                  <button id="submit">Submit</button>
        function _(el)
{
    return document.getElementById(el);
}
function resetOption()
{
    _('submit').setAttribute('onclick', '');
    _('submit').value = "Choose location";

}
function optionOneChosen()
{
    _('submit').setAttribute('onclick', 'functionOne()');
    _('submit').value = "Location one";
}
function optionTwoChosen() 
{
    _('submit').setAttribute('onclick', 'functionTwo()');
    _('submit').value = "Location two";   
}
function optionThreeChosen() 
{
    _('submit').setAttribute('onclick', 'functionThree()');
    _('submit').value = "Location three";   
}

        document.addEventListener('DOMContentLoaded', function ()
{

    _('zero').addEventListener('click', resetOption);
    _('one').addEventListener('click', optionOneChosen);
    _('two').addEventListener('click', optionTwoChosen);
    _('three').addEventListener('click', optionThreeChosen);
});
我试着做了一些调试,似乎系统在“DOMContentLoaded”函数中崩溃了,好像Chrome无法识别我试图访问的属性。那么我错过了什么?或者,Chrome是否实现了其他浏览器尚未标准化的安全功能? 非常感谢!
Jeffrey

这将产生相同的结果:


这将产生相同的结果:

var select = document.querySelector("select"),
    button = document.querySelector("button");

select.addEventListener("change", function(e) {
    var option = this.options[this.selectedIndex];

    switch (option.id) {
        case "zero": button.value = "Choose Location"; break;
        case "one": button.value = "Location one"; break;
        case "two": button.value = "Location two"; break;
        case "three": button.value = "Location three"; break;
    }
});