如何使各种表单元素的 onChange 事件向上冒泡到 Internet Explorer 中的父表单对象?当选择框、单选按钮...几乎任何内容...在 IE 中发生更改时,不会触发父窗体的 onChange。我的表单是动态变化的,因此很难通过监听每个子表单元素来破解它。
HTML
<form id="myForm">
<select>
<option>uno</option>
<option>dos</option>
</select>
<input type="radio" name="videoDevice" value="tres" checked="checked" />
<input type="radio" name="videoDevice" value="cuatro" />
</form>
JS
$('myForm').observe(
'change',
function() {
// this only runs in non-IE browsers
alert('the form changed');
}
);
顺便说一句,我正在使用原型框架。它不应该为我处理跨浏览器的差异吗?
我不得不对 IE 使用 hack。我手动让所有子表单元素触发 onChange 回调,而不是让父表单执行此操作。我希望有一个更清洁的解决方案。
$('myForm').select('input', 'radio', 'textarea').each(
function(formElement) {
formElement.observe(
'change',
function() {
alert('changed');
}
);
}
);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)