在onChange()事件

时间:2016-12-20 12:58:42

标签: javascript jquery

使用“onChange”事件时用户刚刚点击的选项有什么方法? 我想要实现的是这样的:

<select name="my_select" onchange="checkOption(this)">
    <option value="first">1</option>
    <option value="second">2</option>
    <option value="third">3</option>
</select>

功能:

function checkOption(e) {
    if ( jQuery(e).val() == 'second' )
        alert('You just clicked the second option!')
}

但是我不知道如何访问“this”代表当前选项。

我知道如何使用jquery change()事件执行此操作,但在我的特定情况下,此选项并不好。 任何帮助将不胜感激!

编辑:这不是重复,因为有关于如何使用jquery的change()事件的问题,正如我所说的不是我想要的。

4 个答案:

答案 0 :(得分:4)

如果您试图避免一起使用jquery,可以尝试以下方法......

&#13;
&#13;
function checkOption(e) {
  if(e.options[e.selectedIndex].value === 'second')
        alert('You just clicked the second option!')
}
&#13;
<select name="my_select" onchange="checkOption(this)">
    <option value="first">1</option>
    <option value="second">2</option>
    <option value="third">3</option>
</select>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您可以使用jquery的内置onchange函数,如下所示:

    <select name="my_select" class="my_select">
        <option value="first">1</option>
        <option value="second">2</option>
        <option value="third">3</option>
    </select>

解决方案:

<script>
$(".my_select").change(function(){
  //every time you change value this will automatically calls
  if( this.value == 'second'){
    alert('You just clicked the second option!');
   }
});
</script>

答案 2 :(得分:0)

如果没有JQuery,您可以使用如下所示的普通javascript来访问所选值

var e = document.getElementsByName("my_select")[0];
var selectedText = e.options[e.selectedIndex].value;
if ( selectedText == 'second' )
    alert('You just clicked the second option!')

答案 3 :(得分:-1)

在html代码中输入一个ID并将此关键字删除为:

<select id="id" name="my_select" onchange="checkOption()">
    <option value="first">1</option>
    <option value="second">2</option>
    <option value="third">3</option>
</select>

然后将java脚本函数编辑为:

function checkOption() {
  var text = document.getElementById('id').value

    if ( text == 'second' )
        alert('You just clicked the second option!')
}

希望它有效!