我有一个问题,这个代码可能不应该工作:
<script language = "javascript">
$(document).ready(function() {
$('#dept').change(
function() {
var datas = $(this).val();
$.cookie("deptdata", datas);
var urlDept = 'catch.cfm?dept=' + datas;
$.ajax({
type: 'post',
url: urlDept,
success: function(){
window.location.replace('');
var datasR = $.cookie("deptdata");
$("select#dept").val(datasR);
}
});
});
});
</script>
我有这些包括:
<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.2.custom.min.js"></script>
<script type="text/javascript" src="js/cookie.js"></script>
<script type="text/javascript" src="a_scripts.js"></script>
形式:
<form>
<select name="DeptCode" id = "dept">
<option value="NONE">Choose a Department
<cfoutput query="getDepartments">
<option value="#DeptCode#">#DeptName#</option>
</cfoutput>
</select>
</form>
<cfoutput>#session.deptcode#</cfoutput>
应该发生的事情是:当选择部门时,页面会通过ajax(这可以)将会话值更改为所选的部分。但是,我必须刷新页面以使查询适用于页面的其他部分。所以我想缓存select的值并重新分配它以在页面刷新后选择它。 (因此它会保留所选项目。)
答案 0 :(得分:1)
您需要将代码放在函数
之外读取cookie$(document).ready(function() {
var datasS = $.cookie("deptdata");
$("select#dept").val(datasS);
rest of your code here...
答案 1 :(得分:0)
您的window.location.replace('');
重新加载页面,以便重新绘制选择框并重置其内容。