Nic*_*ick 3 javascript jquery reload
我遇到一个问题,我有一个ajax驱动的页面,当用户从一个简单的下拉菜单中选择一些东西时绘制:
<select id = "selectdepartment">
<option id = "default">Select an option...</option>
....
</select>
Run Code Online (Sandbox Code Playgroud)
并使用jquery绘制页面的其余部分.change():
$('#selectdepartment').change(function(){
});
Run Code Online (Sandbox Code Playgroud)
然后运行一些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
Run Code Online (Sandbox Code Playgroud)
您可以使用该.trigger()函数change在页面加载时立即触发事件处理程序:
$('#selectdepartment').change(function() {
// code here
}).trigger('change');
Run Code Online (Sandbox Code Playgroud)
或者如果你需要通过JavaScript/jQuery在其他地方调用它:
$('#selectdepartment').trigger('change'); // or just .change() as a shorthand
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2864 次 |
| 最近记录: |