首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >window.onchange = function()事件

window.onchange = function()事件
EN

Stack Overflow用户
提问于 2012-07-04 20:29:30
回答 2查看 7.1K关注 0票数 0

我已经创建了一个函数,它根据选择下拉菜单的组合显示/隐藏不同的消息,使用window.onchange事件在chrome和FF中工作得很好。谁能告诉我为什么这不能在ie中工作,如果他们有一个解决方案。

由于内部限制,它必须构建在表中。

代码语言:javascript
运行
复制
    ;(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;
        }
    }
})();

这方面的任何帮助都是很好的。谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-04 20:40:29

首先,如果将事件添加到下拉列表的更改中,而不是执行document.change,会更好。

有时候,onpropertychange是ie更可靠的拍摄事件。但是要确保对于该事件,您可以通过添加以下筛选器来执行后续检查,以确保该事件是针对值的更改:

代码语言:javascript
运行
复制
yourselectboxelement.onpropertychange = function() { 
  if (window.event.propertyName == "value") {   
   // Do stuff here     
  } 
}; 
票数 0
EN

Stack Overflow用户

发布于 2012-07-04 20:38:09

IE仅在元素失去焦点时触发onchange事件

尝试使用onclick事件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11329139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档