进出口运行到哪里,我有当用户从一个简单的下拉选择的东西,绘制一个Ajax驱动的页面有问题加载页面时如何运行一个onchange功能:如果已经选择该选择框
<select id = "selectdepartment">
<option id = "default">Select an option...</option>
....
</select>
$('#selectdepartment').change(function(){
});
然后运行一些AJAX到PHP脚本:
和页面的其余部分使用jQuery .change()
绘制。一切都很好,问题是当我提交一个使用ajax绘制的表单时(使用$_SERVER['PHP_SELF'];
),数据被取消,页面重新加载,页面被清除,但选择框仍然保留在原来的位置。用户必须移动到不同的选项,然后返回到最初选择的选项来重新启动.change()
。这很糟糕。
我可以通过在我的所有表单中传递一个php变量来解决此问题,然后检查每个页面加载时是否设置了变量,如果它是绘制页面部件,那么这会导致相当凌乱的代码,它是不太理想。
必须有一种方法来做到这一点与jQuery库,虽然我一般的JavaScript语言的知识不是我希望它是。如果任何人有任何有用的提示,请分享一下,不要为我做的,虽然,我不会学习这种方式:)
编辑:
$('#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
我试过第一个解决方案(发布代码),它没有工作。 – Nick 2013-04-10 15:50:05
您是否在变更函数中放置了console.log,以查看触发器是否被调用? – EmmyS 2013-04-10 15:51:27
林肯定,这工作,但现在由于某种原因,它没有保持在选定的地方。哦,好吧,开始扔php的时候了。谢谢! – Nick 2013-04-10 16:11:33