【问题标题】:set a value as selected in select dropdown在选择下拉列表中设置一个值
【发布时间】:2018-04-19 11:10:27
【问题描述】:

我尝试使用 jquery 在我的编辑表单中将值设置为“已选择”。 这是我的 HTML:

var leaveTypeId = $(this).closest('tr').attr('data-leaveTypeId');
$('#leave_type_edit option[value = leaveTypeId]').attr('selected', 'selected');
<div class="col-sm-8">
  <select name="leave_type" class="select2-container form-control" id="leave_type_edit">
          <option></option>
          <?php foreach ($LeaveTypes as $LeaveTypeNew):?>
          <option value="<?php echo $LeaveTypeNew->id; ?>"><?php echo $LeaveTypeNew->title; ?></option>
          <?php endforeach; ?>
        </select>
</div>

如果重要的话,选择元素会使用 select2 插件进行初始化。 任何帮助表示赞赏。谢谢。

【问题讨论】:

标签: javascript php jquery html


【解决方案1】:

你可以使用:

$('#leave_type_edit').val(leaveTypeId );

它的播放与示例相同:

$('#get-id').on('click', function () {
    let value_select = $(this).attr('data-leaveTypeId');
    $('#leave_type_edit').val(value_select);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="col-sm-8">
   <select name="leave_type" class="select2-container form-control" id="leave_type_edit">
      <option value="1">1</option>
      <option value="2">2</option>
      <option value="3">3</option>
      <option value="4">4</option>
    </select>
</div>
<button id="get-id" data-leaveTypeId="2">id check</button>

【讨论】:

  • 我已经为它添加了一个例子。如果它不起作用,您可以再次检查var leaveTypeId你们:
  • 我已经阅读了 select2 的文档:您必须在其后添加 .trigger('change')$('#leave_type_edit').val(leaveTypeId ).trigger('change')
  • .trigger('change') 工作的魅力...谢谢你的努力 :)
【解决方案2】:

它不会起作用,因为你没有把它作为变量,你实际输入的是字符串 leaveTypeId 而不是它的值

改变

var leaveTypeId = $(this).closest('tr').attr('data-leaveTypeId');
$('#leave_type_edit option[value = leaveTypeId]').attr('selected', 'selected');

var leaveTypeId = $(this).closest('tr').attr('data-leaveTypeId');
$('#leave_type_edit option[value='+leaveTypeId+']').attr('selected', 'selected');

Demo

希望对你有帮助

【讨论】:

  • 似乎是 select2 问题...当我删除初始化时,它正在工作...
【解决方案3】:

试试这个:

$('#leave_type_edit').change(function(){

var leaveTypeId = $(this).closest('tr').attr('data-leaveTypeId');

if($(this).val == leaveTypeId){
$(this).find('option').attr('selected','selected');
}
});

或者:

$('#leave_type_edit').change(function(){
var leaveTypeId = $(this).closest('tr').attr('data-leaveTypeId');

$(this).find('option[value="'+leaveTypeId+'"]').attr('selected','selected');

});

没有change,但有onload

var leaveTypeId = 2; // for example
$('#leave_type_edit').find('option[value="'+leaveTypeId+'"]').attr('selected','selected');

Working Demo

【讨论】:

  • 似乎是 select2 问题...当我删除初始化时,它正在工作...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-04
  • 1970-01-01
相关资源
最近更新 更多