设置选择下拉列表中选定的值

时间:2017-11-07 06:29:06

标签: javascript php jquery html

我尝试使用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插件初始化select元素。 任何帮助表示赞赏。感谢。

3 个答案:

答案 0 :(得分:2)

你可以使用:

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

它与示例相同:

&#13;
&#13;
$('#get-id').on('click', function () {
    let value_select = $(this).attr('data-leaveTypeId');
    $('#leave_type_edit').val(value_select);
});
&#13;
<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>
&#13;
&#13;
&#13;

答案 1 :(得分: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

希望这有助于你

答案 2 :(得分:1)

试试这个:

$('#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');

});

没有changeonload

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

<强> Working Demo