我遇到了一个问题,我有一个 ajax 驱动的页面,当用户从一个简单的下拉列表中选择某些内容时会绘制该页面:
<select id = "selectdepartment">
<option id = "default">Select an option...</option>
....
</select>
页面的其余部分是使用 jquery 绘制的.change()
:
$('#selectdepartment').change(function(){
});
然后运行一些 ajax 到 php 脚本。一切正常,问题是当我提交一个用 ajax(使用$_SERVER['PHP_SELF'];
)绘制的表单时,数据被提交,页面重新加载,页面被清除但选择框仍然留在原处。用户必须移动到不同的选项,然后回到最初选择的选项以重新触发.change()
. 太糟糕了。
我可以通过在我的所有表单中传递一个 php 变量来解决这个问题,然后检查在每个页面加载时设置的变量以及是否绘制页面部分,但这会导致代码非常混乱,而且不太理想。
必须有一种方法可以使用 jquery 库来做到这一点,尽管我对 javascript 语言的一般知识并不是我想要的。如果有人有任何有用的提示,请分享,但不要为我做,我不会那样学习:)
编辑:带有 .trigger 的代码
$('#selectdepartment').change(function(){
var department = $('#selectdepartment').val();
var day = $('#data').data('day');
var month = $('#data').data('month');
var year = $('#data').data('year');
//alert (department);
if(department === "Select an option..."){
$('.hiddenuntildepartmentisselected').css({"display":"none"});
}
else{
$('.hiddenuntildepartmentisselected').css({"display":"block"});
}
showpoints(department);
drawpointstable(department, day, month, year);
displaytheuseresforselecteddepartment(department, '');
$('#sendthedepartment').val(''+department+'');
$('#hiddendepartmentidforaddinganewpoint').val(''+department+'');
}).trigger('change');//end run functions