根据ajax响应的结果在下拉菜单中自动选择一个选项[重复]

Posted

技术标签:

【中文标题】根据ajax响应的结果在下拉菜单中自动选择一个选项[重复]【英文标题】:Auto selecting an option in a drop-down menu based on the result of an ajax response [duplicate] 【发布时间】:2020-03-16 13:35:22 【问题描述】:

我正在尝试打开一个包含下拉选择菜单的表单,并且已经根据来自 ajax 调用的响应选择了该选项。 根据我的阅读,我应该使用以下代码根据 ajax 响应在下拉列表中选择选项。我已经使用prop('selected', true 尝试了各种组合,但我没有尝试过。

$('#EditRoomOverrideRoom option').val(result[2]).prop('selected', true);

我的下拉菜单:

<select size="1" name="EditRoomOverrideRoomSelect" class="input-field" id="EditRoomOverrideRoom" required>

do 

<option value="<?php echo $row_MultiRoomSelect['ConfRoomID']?>"><?php echo $row_MultiRoomSelect['ConfRoomName']?></option>

 while ($row_MultiRoomSelect = mysql_fetch_assoc($MultiRoomSelect));
$rows = mysql_num_rows($MultiRoomSelect);
if($rows > 0) 
mysql_data_seek($MultiRoomSelect, 0);
$row_MultiRoomSelect = mysql_fetch_assoc($MultiRoomSelect);


</select>

可能 ajax 响应:

success: function(data)
    var result = JSON.stringify(data);
    result = JSON.parse(result);
    console.log("RESULT", result);
    var recordid = result[0];
    $('#EditRoomOverrideRecordID').val(result[0]);
    $('#EditRoomOverrideRoomID').val(result[1]);
    $('#EditRoomOverrideRoom option').val(result[2]).prop('selected', true);
    $('#EditRoomOverrideClientName').val(result[3]);
    $('#EditRoomOverrideFromDate').val(result[4]);
    $('#EditRoomOverrideFromTimeH').val(result[5]);
    $('#EditRoomOverrideFromTimeM').val(result[6]);
    $('#EditRoomOverrideToDate').val(result[7]);
    $('#EditRoomOverrideToTimeH').val(result[8]);
    $('#EditRoomOverrideToTimeM').val(result[9]);
    $('#EditRoomOverrideCompanyImage').val(result[10]);
    var imagepath = '../../../../conf/conf_images/roomoverride/'+ hotelid +'/'+ result[10];
    //$("#EditRoomOverrideCompanyImage").attr("src",imagepath);
    $("#EditRoomOverridePreview").attr("src",imagepath);
    $('#EditRoomOverrideFullBoardRoom').val(result[10]);

我哪里出错了?

【问题讨论】:

【参考方案1】:

您不需要在 jquery 选择器上指定 option 元素或在 select 元素上调用 prop('selected', true),只使用 .val()

<select id="mySelect">
    <option value="opt1">Opt 1</option>
    <option value="opt2">Opt 2</option>
    <option value="opt3">Opt 3</option>
</select>

$('#mySelect').val('opt2');

请记住,通过参数传递给.val() 的值必须是select 元素内的有效option

【讨论】:

以上是关于根据ajax响应的结果在下拉菜单中自动选择一个选项[重复]的主要内容,如果未能解决你的问题,请参考以下文章

带有动态 ajax url 选项的 ng2-select2

Wordpress 选项页面中动态生成的下拉菜单

根据 DJango/Ajax 中的第一个选定下拉菜单创建下拉选择

使用 AJAX 如何根据数据库中的可用记录为下拉菜单生成选择?

通过从 javascript 文件中查询数据库,根据下拉菜单中的选择更新 div 内容

Excel 如何实现五级下拉菜单联动