Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择2不';t在更改/选择第一个选项时触发_Javascript_Jquery_Jquery Select2_Select2_Select2 Rails - Fatal编程技术网

Javascript 选择2不';t在更改/选择第一个选项时触发

Javascript 选择2不';t在更改/选择第一个选项时触发,javascript,jquery,jquery-select2,select2,select2-rails,Javascript,Jquery,Jquery Select2,Select2,Select2 Rails,我正在做的是:当模式弹出窗口打开时,动态地向选择框添加选项。并等待更改时的触发器响应 观察:除了第一个选项外,它会弹出所有选项的警报框。 下面是代码 $("#query_product").on("change", function(e){ alert(1) }); $("#add_condition_modal").on( "shown.bs.modal", function() { options = ['<option>one</option>','<

我正在做的是:当模式弹出窗口打开时,动态地向选择框添加选项。并等待更改时的
触发器响应

观察:除了第一个选项外,它会弹出所有选项的警报框。 下面是代码

$("#query_product").on("change", function(e){
  alert(1)
});

$("#add_condition_modal").on( "shown.bs.modal", function() {
  options = ['<option>one</option>','<option>two</option>','<option>three</option>']
  $('#query_product').find('option').remove()
  $('#query_product').append(options); 
});

<select id="query_product" name="query_product" required></select>

似乎什么都不管用。任何帮助都将不胜感激。TIA

这是你做错了一点

[“一”、“二”、“三”]

我建议用绳子

$("#query_product").on("change", function(e){
  alert(1)
});

$("#add_condition_modal").on( "shown.bs.modal", function() {
  options ='<option>one</option><option>two</option><option>three</option>';
  $('#query_product').html(options);
});

<select id="query_product" name="query_product" required></select>
这把小提琴可能有用 试试这个:

$("#query_product").on("change", function(e){
  alert(1)
});

$("#add_condition_modal").on( "shown.bs.modal", function() {
  options = ['<option value="one">one</option>','<option value="two">two</option>','<option value="three">three</option>']
  $('#query_product').find('option').remove();
  $('#query_product').append(options); 
  $('#query_product').val("");
});

<select id="query_product" name="query_product" required></select>
$(“查询产品”)。关于(“更改”,函数(e){
警报(1)
});
$(“#添加#条件#模态”)。在(“show.bs.modal”,function()上{
选项=['1','2','3']
$(“#查询_产品”).find('option').remove();
$(“#查询_产品”)。附加(选项);
$(“#查询_产品”).val(“”);
});

Nope,注释掉了
$('query\u product')。查找('option')。删除()。。仍然是相同的结果您是否尝试重新初始化它<代码>$(“#查询_产品”)。附加(选项)。选择2()
而不是删除
$('#query_product')。查找('option')。删除()
?让我为您创建一个小提琴。现在尝试一下。同样的结果:|我已经更新了答案和fiddle链接。试试看,它会管用的。谢谢,这个管用。但您能解释一下为什么需要将空val设置为select框吗。我很想知道这是为了重置选择框的值,以便触发更改事件。
var options = ['first_option','second_option','third_option'];
var optionString = '';
    for(var i = 0; i< options.length; i++){
        optionString += '<option>'+options[i]+'</option>';
    }
 then $('#selector').html(optionString);
$("#query_product").on("change", function(e){
  alert(1)
});

$("#add_condition_modal").on( "shown.bs.modal", function() {
  options = ['<option value="one">one</option>','<option value="two">two</option>','<option value="three">three</option>']
  $('#query_product').find('option').remove();
  $('#query_product').append(options); 
  $('#query_product').val("");
});

<select id="query_product" name="query_product" required></select>