使用jQuery </option>选择特定的<option>时检测

时间:2009-12-23 14:21:33

标签: javascript jquery events select option

我希望jQuery检测何时选择了标识为trade_buy_max的选项。

$(document).ready(function() {
    $("option#trade_buy_max").select(function () {
        //do something
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<select name='type' id='type'>
    <option id='trade_buy' value='1' selected='selected'>Buy</option>
    <option id='trade_buy_max' value='1'>Buy max</option>
    <option id='trade_sell' value='2'>Sell</option>
    <option id='trade_sell_max' value='2'>Sell max</option>
</select>

我已尝试过以下内容,但似乎无效。

有什么想法吗?

6 个答案:

答案 0 :(得分:46)

这有效...... 在选择框中侦听更改事件以触发它,然后只需拉出所选选项的id属性。

$("#type").change(function(){
  var id = $(this).find("option:selected").attr("id");

  switch (id){
    case "trade_buy_max":
      // do something here
      break;
  }
});

答案 1 :(得分:9)

您需要做的是向onchange添加select处理程序:

$('#type').change(function(){ 
  if($(this).val() == 2){
     /* Do Something */
  }
});

答案 2 :(得分:4)

您可以在其选择中绑定change事件,然后检查是否选择了选项

$("select#type").change(function () {
   if( $("option#trade_buy_max:selected").length )
   {
     // do something here
   }
});

答案 3 :(得分:1)

$("option#trade_buy_max").change(function () {
    opt = $(this).children("option:selected").attr('id');
    if(opt == '#trade_sell_max'){
        // do stuff
    } 
});

未经测试,但这应该有用。

答案 4 :(得分:1)

使用change事件并获取所选选项的id属性:

$('#type').change(function () {
  var selectedId = $('option:selected', this).attr('id');

  if (selectedId == "trade_buy_max") {
    // do something
  }
});

答案 5 :(得分:0)

将.select更改为.change并在#

之前添加空格