0
我想创建一个选择框,刷新其选项时,用户选择,但我遇到了一个问题,我无法图浩解决。 作为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文件(以下简称“用户”排列到位的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>';
感谢大家的答案。
我已经更新和测试脚本获得VAL,现在看来仍不失var或者仅仅是为了在刷新之后不正确地设置它。 – SophieV
首先$(document).ready(function(){是函数,当你的DOM被加载时执行,所以$('#UsersList').val(UsersSelect);实际上什么都不做。 - 在PHP中放入一些var_dump(),并在你的$ .get成功函数中加入alert(data)。很难说错误是什么,因为我认为这个脚本现在可以正常工作了。我在localhsot上检查了这段代码,如果在载入页面上select的值是User2,那么它保持选中状态。 – pushOk
它几乎可以在Chrome上运行(选择需要点击两次以刷新),但仍然使用FF重置为null,当显示一个白色框时如果焦点改变(例如,点击页面上的另一个元素),则重新加载并丢失选择。 – SophieV