简体   繁体   English

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

[英]How can I fire an event in an option tag?

I looked for a solution for this, but couldn't find it.我为此寻找了解决方案,但找不到。

I have a simple select like this:我有一个像这样的简单选择:

<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>

Always the user clicks on an option, a javascript event must be fired.用户总是点击一个选项,必须触发一个 javascript 事件。 The onChange event in the select doesn't work for me, because the user can choose the same option, and the event must be fired as well. select 中的 onChange 事件对我不起作用,因为用户可以选择相同的选项,并且该事件也必须被触发。

I tried the onClick event on options.我在选项上尝试了 onClick 事件。 It works on IE and FF, but doesn't work on Chrome.它适用于 IE 和 FF,但不适用于 Chrome。 Any ideas how can I do it?任何想法我该怎么做?

I wrote a code but it is not working on IE, just give it a try: http://jsfiddle.net/shahe_masoyan/scuhb/1/我写了一个代码,但它在 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;
});

As per your question you can do following :-根据您的问题,您可以执行以下操作:-

<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>

But i don't know this right option or not.但我不知道这个正确的选择与否。 But this will work as you told.但这会像你说的那样工作。

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

You can try onclick like,你可以试试onclick类的,

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

I had the same issue.我有同样的问题。 In my task, I needed to get the value of the selected option.在我的任务中,我需要获取所选选项的值。 This helped me:这帮助了我:

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

The select variable is, obviously, the tag .显然,选择变量是标签。 It might look strange, but select takes the value of the chosen option, that's why the code works.它可能看起来很奇怪,但是 select 会接受所选选项的值,这就是代码起作用的原因。

Use:采用:

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

Hope this will work for you希望这对你有用

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM