javascript - 在 jQuery select 中获取未定义的值

标签 javascript jquery html

我需要从选择的 HTML 中获取一个值,以便与整数值进行比较并采取操作或其他操作。问题是我总是从 select 中获取未定义的值,然后我无法将未定义的值与 Integer 进行比较,谢谢。

代码:

var toRet
$(document).ready(function(){
  $('#id_event_type').on('change', function() {
    toRet = $('#id_event_type :selected').val(); //:selected is not necesary I think
    alert($(toRet).val());//returns undefined

   });
});
if (toRet == 2){
    var eventIcon = new OpenLayers.Icon('/stati/img/accidente.png',eventSize, eventOffset);
}
if (toRet == 0){
    var eventIcon = new OpenLayers.Icon('/static/img/obrasMarker.png', eventSize, eventOffset);
}
if (toRet == 1){
   var eventIcon = new OpenLayers.Icon('/static/img/alertMarker.png', eventSize, eventOffset);
}
if (toRet == ""){
   var eventIcon = new OpenLayers.Icon('/static/img/alertMarker.png', eventSize, eventOffset);
}
eventMarkerslayer.addMarker(new OpenLayers.Marker(eventPosition, eventIcon));

代码已更新:

toRet = null;
//var selector = document.getElementById("id_event_type")
//var valorSeleccionado = selector.options[selector.selectedIndex].value;
$(document).ready(function(){           
  slc = $('#id_event_type');

  slc.on('change', function(){

    toRet = parseInt(slc.find(":selected").val(), 10);//here is ok!

   });
    //from here toRet is null                       
   if (toRet == 2){
     var eventIcon = new OpenLayers.Icon('/static/img/accidente.png', eventSize, eventOffset);
   }
  if (toRet == 0){
    var eventIcon = new OpenLayers.Icon('/static/img/obrasMarker.png',   eventSize, eventOffset);
  }
  if (toRet == 1){
    var eventIcon = new OpenLayers.Icon('/static/img/atascoMarker.png', eventSize, eventOffset);
  }

  eventMarkerslayer.addMarker(new OpenLayers.Marker(eventPosition,   eventIcon));
  eventMarkerslayer.setVisibility(false);
  $( "#visibilityEvents" ).change(function() {
      if ($('#visibilityEvents').is(":checked")) {
          eventMarkerslayer.setVisibility(true);
      } else {
          eventMarkerslayer.setVisibility(false);
      }
  });
});

HTML:

<select id="id_event_type" name="event_type" required="">
  <option value="" selected="selected">---------</option>
  <option value="0">Obras en la carretera</option>
  <option value="1">Congestion del trafico</option>
  <option value="2">Accidente</option>
</select>

最佳答案

试试这个

$(document).ready(function(){
  var slc = $('#id_event_type');
  
  var value;
  
  slc.on('change', function(){
  value  = slc.find(":selected").val();
  alert(value);
  })
  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="id_event_type" name="event_type" required="">
  <option value="" selected="selected">---------</option>
  <option value="0">Obras en la carretera</option>
  <option value="1">Congestion del trafico</option>
  <option value="2">Accidente</option>
</select>

关于javascript - 在 jQuery select 中获取未定义的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38888836/

相关文章:

javascript - Immutable.js 具有(默认)唯一 ID 的记录

javascript - 网页中的网页 : what HTML element can do that?

jquery - 使用 Jquery 查找 block 的高度

javascript - Canvas 上下文 drawImage() 问题

css 100%宽度div不占用父级的整个宽度

javascript - 上传到 Google 脚本 HTML 时,Google 脚本不显示 jQuery 布局

php - F5后如何保存页面状态

javascript - jQuery Datatable XHR 和错误事件一起不起作用

javascript - jQuery iframe 加载 JavaScript 内容 - 上下文

jquery - 两个独立的固定列标题,使用 CSS 或 JQuery 进行水平滚动