选择框在刷新时丢失所选选项


Select box losing selected option when refreshed

我正在尝试创建一个选择框,该框在用户选择时刷新其选项,但是我遇到了一个我无法解决的问题。作为jquery的初学者,我已经为同一程序征求了建议:刷新后使用jquery在选择下拉列表中保留选定的选项。

按照建议,现在它几乎完全工作,但我希望下拉列表的行为完全像非动态下拉菜单一样,打开时保留所选选项,除了刷新选项列表:现在它"几乎"保持选择的值(它保留在下拉列表中)但当元素失去对页面中其他人的焦点并且我不知道如何解决问题时,它会重置为第一个选项。我试图将带有 ajax 的变量传递给 php 页面以在刷新时选择它,但当焦点发生变化时它仍然会重置。

JS代码:

$(document).ready(function() {
$("#UsersDiv").focusin(function() {
        var UsersSelect = $('#UsersList').val();
        $.get( 
            "userlist.php",
            { UserSelect1: UsersSelect },
            function(data) {
            $('#UsersList').html(data);
            }
        );
    })
    $('#UsersList').val(UsersSelect);
});

网页:

<div name="UsersDiv" id="UsersDiv">
<select name="UsersList" id="UsersList">
<option value="User1">User1</option>
<option value="User2">User2</option>
</select>
</div>

php 文件("users"数组代替了 sql 查询,两者都可以正常工作):

$UserSelect1 = $_GET['UserSelect1'];
$users=array( 'User1','User2','User3','User4','User5');
echo '<select name="UsersList" id="UsersList">';
foreach($users as $list):
echo '<option value="'.$list.'" ';
if ($UserSelect1 == $list) {
    echo 'selected=selected';
}
echo '>'.$list.'</option>';
endforeach;
echo '</select>';

感谢大家的回答。

$("#UsersDiv")

比你分配这个

 $select=$(this) // $select is $("#UsersDiv");

而不是你试图从div 获得 val

 UsersSelect = $select.val() // $select.val() is undefined