在打开下拉列表之前执行

时间:2014-04-12 17:07:42

标签: javascript jquery html

我正在使用以下脚本。当我点击下拉列表时,它在Chrome和Firefox中运行良好。但是在IE上,我需要双击打开包含数据的下拉字段。

$("#dp2").focus(function() {
var $secondChoice = $("#dp2");
        $secondChoice.empty();
$secondChoice.append("<option>Select</option>"
+"<option>" + $("#team3").val() + "</option>"
+"<option>" + $("#team4").val() + "</option>");
})

从文本字段获取数据的完美方式是什么,然后下拉字段将打开这些输入的数据?

1 个答案:

答案 0 :(得分:1)

已编辑/新更新 - 检查是否先填充...

 var _populated = false;

$('#dp2').on('focus',function(e) {

    if( !_populated) {
      /* stop the select from opening */
      e.preventDefault();
      /* populate */
      var $secondChoice = $(this); /* can use this */
      $secondChoice.empty();
      $secondChoice.append('<option>Select</option>'
        +'<option>' + $'#team3').val() + '</option>'
        +'<option>' + $('#team4').val() + '</option>');

       _populated = true;
       $secondChoice.focus();
    }
});

这一次,确实创造了一个演示 - http://jsfiddle.net/HGtJZ/


如果需要“重新填充”,则可以在其他程序逻辑中设置_populated=false,然后重新制作。