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