我已经创建了一个函数,它根据选择下拉菜单的组合显示/隐藏不同的消息,使用window.onchange事件在chrome和FF中工作得很好。谁能告诉我为什么这不能在ie中工作,如果他们有一个解决方案。
由于内部限制,它必须构建在表中。
;(function(){
document.onchange = function(){
// Initialise variables for drop down options
var homeMove = document.getElementById('homeMove'),
transferOrder = document.getElementById('transferOrder'),
orderComplete = document.getElementById('orderComplete'),
submitBtn = document.getElementById('submitBtn');
// Initialise variables for comments
var comment1 = document.getElementById('comment1'),
comment2 = document.getElementById('comment2'),
comment3 = document.getElementById('comment3');
if((homeMove.value == 'No') && (transferOrder.value == 'No')){
comment2.style.display = 'none';
comment3.style.display = 'none';
comment1.style.display = 'block';
submitBtn.disabled = true;
}
// if Home Move - No AND Transfer Order - Yes. Display nothing. Submit button abled
if((homeMove.value == 'No') && (transferOrder.value == 'Yes')){
comment1.style.display = 'none';
comment2.style.display = 'none';
comment3.style.display = 'none';
submitBtn.disabled = false;
}
// If Home Move - Yes AND Transfer Order - NO. Display comment1. Submit button disables
if((homeMove.value == 'Yes') && (transferOrder.value == 'No')){
comment1.style.display = 'block';
comment2.style.display = 'none';
comment3.style.display = 'none';
submitBtn.disabled = true;
}
// If Home Move - Yes AND Transfer Order - Yes AND Order Complete - Yes. Display comment2 Subhmit button abled
if((homeMove.value == 'Yes') && (transferOrder.value == 'Yes') && (orderComplete.value == 'Yes')){
comment1.style.display = 'none';
comment2.style.display = 'block';
comment3.style.display = 'none';
submitBtn.disabled = false;
}
// If Home Move - Yes AND Transfer Order - Yes and Order Complete - No. Display comment3. Submit button disabled
if((homeMove.value == 'Yes') && (transferOrder.value == 'Yes') && (orderComplete.value == 'No')){
comment1.style.display = 'none';
comment2.style.display = 'none';
comment3.style.display = 'block';
submitBtn.disabled = true;
}
}
})();
这方面的任何帮助都是很好的。谢谢
发布于 2012-07-04 20:40:29
首先,如果将事件添加到下拉列表的更改中,而不是执行document.change,会更好。
有时候,onpropertychange是ie更可靠的拍摄事件。但是要确保对于该事件,您可以通过添加以下筛选器来执行后续检查,以确保该事件是针对值的更改:
yourselectboxelement.onpropertychange = function() {
if (window.event.propertyName == "value") {
// Do stuff here
}
};
发布于 2012-07-04 20:38:09
IE仅在元素失去焦点时触发onchange事件
尝试使用onclick事件。
https://stackoverflow.com/questions/11329139
复制相似问题