发现 fireEvent 时,确实兴奋了一把~~,终于找到可以手动触发 onchange 事件的呢~
试了下,老问题,又是 IE 和 FF 不兼容的问题...
还好,找到了解决的方法~~~
FF下,用如下的就可以搞定啦~
[js]
var e = document.createEvent('HTMLEvents');
e.initEvent('change', false, false);
document.form_test.test_text.dispatchEvent(e);
[/js]
测试代码如下:
[html]
<script type="text/javascript">
function justify_browser() {
var Sys = {};
var ua = navigator.userAgent.toLowerCase();
var s;
(s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
(s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
(s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
(s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
(s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
if (Sys.ie) return 1;
if (Sys.firefox) return 2;
if (Sys.chrome) return 3;
if (Sys.opera) return 4;
if (Sys.safari) return 5;
}
function button_onClick() {
document.form_test.test_text.value=parseInt(document.form_test.test_text.value) + 1;
browser_flag = justify_browser();
if (browser_flag == 1) {
document.form_test.test_text.fireEvent('onchange');
} else if (browser_flag == 2) {
var e = document.createEvent('HTMLEvents');
e.initEvent('change', false, false);
document.form_test.test_text.dispatchEvent(e);
}
}
[/js]
<form name="form_test" action="">
<input type="text" name="test_text"
onchange="alert(document.form_test.test_text.value);" readonly="readonly" value="0" />
<input type="button" onclick="button_onClick();" />
[/html]
没有评论 :
发表评论