var firsty = document.getElementById("txtYear").value;
这句代码没有放在函数里的话,就是打开页面立即执行,此时txtYear可能都还没被浏览器加载,所以出错。
建议,放在body的onload里面执行
这句代码没有放在函数里的话,就是打开页面立即执行,此时txtYear可能都还没被浏览器加载,所以出错。
建议,放在body的onload里面执行
解决方案 »
- 无法导入外部js文件?
- 到底都是什么意思啊?
- 这个 正则如何写?
- 如何让这个按钮只能单选,不能多选。请高手指点。
- 寻求一个有基本功能的文本编辑控件
- 用js实现的编程器,现在还有bug
- 验证<INPUT type="file">的问题,求大家帮助.-----------------在线等.
- 表格列锁定,动态排序号(包括中文排序的例子),简单的选项卡
- 急急急!!!! 如何用replace和正则表达式把 html语句中的 name=dm1 转换成 name=dm12 的形式?
- Shell.Application 技术参考
- asp/ajax/gb2312/©®乱码问题
- javascript取值问题
在定义全局变量的时候要特别谨慎,因为js全局变量里
var firsty = document.getElementById("txtYear").value;//最开始的加载页面时年和月
var firstm = document.getElementById("txtMonth").value;
var secondy = document.getElementById("txtYear").value;//当onchange触发后的值
var secondm = document.getElementById("txtMonth").value;
从来都没有被js函数所调用过,所以就没有办法给全局变量赋值,所以,你必须要给全局变量赋值,于是在页面的onload中调用一个函数给他赋值就可以了。
把我的正确答案也发上来,供大家分享下,虽然大多数都会,呵呵。分不多,自己解决的,回帖者都有分吧var firsty;
var firstm;
var secondy;
var secondm;
var panduan=0;//判断改变了没有
function onloadload()
{
firsty = document.getElementById("txtYear").value;//最开始的加载页面时年和月
firstm = document.getElementById("txtMonth").value;
secondy = document.getElementById("txtYear").value;//当onchange触发后的值
secondm = document.getElementById("txtMonth").value;
}
function changeym()//onchange事件触发
{
secondy = document.getElementById("txtYear").value;
secondm = document.getElementById("txtMonth").value;
if(parseInt(secondy,10) != parseInt(firsty,10) || parseInt(secondm,10) != parseInt(firstm,10))//之所以转化是考虑到了月份3和03的区别
{
panduan=1;//有变化
}
else
{
firsty=secondy;//进行赋值,为的是变化后在进行变化
firstm=secondm;
}
}
function onluris()
{
if(panduan == 1)
{
alert('重新检索数据!');
document.getElementById("btnCurPayLoad").click();
}
}在页面的onload函数里调用onloadload()函数即可
好似有时候页面出错的话. onload 不会被执行,
函数执行没?