我正在尝试创建一个选择框,在用户选择时刷新其选项,但我遇到了一个我无法解决的问题。 我仍然是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>';
感谢大家的回答。
答案 0 :(得分:0)
$("#UsersDiv")
比分配
$select=$(this) // $select is $("#UsersDiv");
并且你试图从div获得val
UsersSelect = $select.val() // $select.val() is undefined