如何在选项标签中触发事件?

时间:2013-12-11 13:16:03

标签: javascript jquery events html-select

我为此寻找解决方案,但找不到它。

我有一个简单的选择:

<select id="sltFiltroPedidos">
  <option value="todos">Todos</option>
  <option value="hoje">de hoje</option>
  <option value="semana">da semana</option>
  <option value="periodo">Período</option>
  <option value="pedido">Número do pedido</option>
</select>

用户始终点击某个选项,必须触发javascript事件。 select中的onChange事件对我不起作用,因为用户可以选择相同的选项,并且也必须触发事件。

我在选项上尝试了onClick事件。它适用于IE和FF,但不适用于Chrome。 任何想法我该怎么做?

5 个答案:

答案 0 :(得分:4)

我写了一段代码,但它不能用于IE,只需试一试:http://jsfiddle.net/shahe_masoyan/scuhb/1/

<select id="sltFiltroPedidos">
  <option value="todos">Todos</option>
  <option value="hoje">de hoje</option>
  <option value="semana">da semana</option>
  <option value="periodo">Período</option>
  <option value="pedido">Número do pedido</option>
</select>


var isOpen = false;
$('#sltFiltroPedidos').on('mouseup', function () {
    if (isOpen){
        alert(this.value);
    }
    isOpen = !isOpen;
});

答案 1 :(得分:2)

根据您的问题,您可以执行以下操作: -

<select id="sel" onblur="showme()">
  <option value="todos" >Todos</option>
  <option value="hoje" >de hoje</option>
  <option value="semana" >da semana</option>
  <option value="periodo" >Período</option>
  <option value="pedido" >Número do pedido</option>
</select>

但我不知道这个正确的选择。但这会像你说的那样奏效。

function showme()
{
    alert(document.getElementById('sel').value);
}

答案 2 :(得分:0)

您可以尝试使用onclick

var prevValue=$('select').val();
$('select').on('click',function(){
   if(prevValue==this.value) // code for same values
   // your code to run
});

答案 3 :(得分:0)

我遇到了同样的问题。在我的任务中,我需要获取所选选项的值。这对我有帮助:

let selectedOption = "";
<select>.addEventListener("change", event => {
    selectedOption = event.target.value
});

选择变量显然是标签。 看起来可能很奇怪,但是 select 会接受所选选项的值,这就是代码有效的原因。

答案 4 :(得分:-1)

使用:

 $('#sltFiltroPedidos').on('change', function() {
    alert( this.value );// or this.val()
 });

希望这对你有用

相关问题