我正在使用PHP和jQuery开发一个表单。
这是链接:
http://www.yamaha-motor.com.pe/extreme/php/yamaha/registro/FrmRegistro01.php
它适用于Firefox,但不适用于IE。
你能告诉我什么?
由于
答案 0 :(得分:4)
您的页面非常复杂,并且带有剪切和粘贴的代码,很难知道您想要演示的问题到底是什么。但是,通过脚本进行简单的浏览就会发现,您正在嗅探addEventListener
并特别嗅探IE,并为每个人做完全不同的事情,其中很多只是被注释掉了。那么你期待什么?
$('select#cbxMeses').attr('onchange', "javascript:fn_mesSeleccionado()");
这是一个明显的错误。首先,因为事件处理程序属性在开始时不应该有javascript:
(仅适用于javascript:
伪URL,这也应该永远不会。
但无论如何,这根本不是将事件处理程序附加到元素的正确方法;它在IE中不起作用,将JS代码放入字符串中是很丑陋和低效的。使用函数(函数名称或内联function() { ... }
)和jQuery的事件绑定方法之一。
$(document).ready(function() {
$('#cbxMeses').change(fn_mesSeleccionado);
$('#cbxAnos').change(fn_anoSeleccionado);
...
});
这无处不在!根本不需要嗅探浏览器!
答案 1 :(得分:0)
我刚解决了。
解决方法是不要做类似的事情:
$('select#cbxMeses').attr('onchange', "javascript:fn_mesSeleccionado()");
......并且这样做:
var select1 = document.getElementById("cbxMeses");
select1.changed = false;
select1.onchange = fn_mesSeleccionado;
显然IE尝试在呈现所有DOM元素之前执行所有JavaScrpit代码。