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

时间:2013-12-18 11:50:36

标签: php jquery select refresh selected

我正在尝试创建一个选择框,在用户选择时刷新其选项,但我遇到了一个我无法解决的问题。 我仍然是jquery的初学者,我已经就同一个程序提出了建议:Keeping selected an option in select dropdown with jquery after refresh

按照这个建议,它现在几乎完全有效,但是我希望下拉列表的行为与非动态的一样,打开时保持选中的选项,除了选项列表也刷新:现在它“几乎”保持选择的值(它将其保留在下拉列表中),但当元素失去焦点到页面中的其他人并且我不知道如何解决问题时,将重置为第一个选项。我尝试将带有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);
});

html页面:

<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>';

感谢大家的回答。

1 个答案:

答案 0 :(得分:0)

$("#UsersDiv")

比分配

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

并且你试图从div获得val

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