Javascript &引用;getElementById(…)。选项为null或不是对象;仅在IE7中

Javascript &引用;getElementById(…)。选项为null或不是对象;仅在IE7中,javascript,select,internet-explorer-7,null,getelementbyid,Javascript,Select,Internet Explorer 7,Null,Getelementbyid,我是在一种令人遗憾的失败状态下来问我的问题的。我花了将近10个小时来解决这个令人遗憾的小问题,其中很多人都在stackoverflow上以及互联网上的其他地方挖掘类似的问题 交易是这样的:我使用带有选项值的select表单来完成页面链接,但当我使用onchange(或onblur)来获取所选元素时,IE7认为那里什么都没有(尽管IE8、9、Chrome、FF的功能与我预想的一样) CMS是复杂的,所以我可以在哪里添加脚本有一些限制,但我确实意识到DOM对我来说可能是一个问题。我还尝试将函数放在w

我是在一种令人遗憾的失败状态下来问我的问题的。我花了将近10个小时来解决这个令人遗憾的小问题,其中很多人都在stackoverflow上以及互联网上的其他地方挖掘类似的问题

交易是这样的:我使用带有选项值的select表单来完成页面链接,但当我使用onchange(或onblur)来获取所选元素时,IE7认为那里什么都没有(尽管IE8、9、Chrome、FF的功能与我预想的一样)

CMS是复杂的,所以我可以在哪里添加脚本有一些限制,但我确实意识到DOM对我来说可能是一个问题。我还尝试将函数放在window.onload中,以防引起问题,但似乎不是这样。这是我的密码:

<form name="myBrowseForm" action="/portal/" method="post">
    <label for="redirect">Choose a Region</label>
    <br />
    <select id="organization" onchange="document.myBrowseForm.action=document.getElementById('organization').options[document.getElementById('organization').selectedIndex].value;" name="shortcut">
        <option value="#">Select a Region</option>
        <option value="/r1">New England (1)</option>
        <option value="/r2">Northeast & Caribbean (2)</option>
        </select>
        <input border="0" hspace="5" src="/btn_go.gif" alt="Go" onclick="if(document.myBrowseForm.action != ''){document.myBrowseForm.submit();} else return false;" type="image">
        </form>

选择一个地区

选择一个区域 新英格兰(1) 东北和加勒比地区(2)

我感谢您对我的任何指导

您是否尝试了
document.getElementById('organization')。value
而不是options

给予:

<form name="myBrowseForm" action="/portal/" method="post">
    <label for="redirect">Choose a Region</label>
    <br />
    <select id="organization" onchange="document.myBrowseForm.action=document.getElementById('organization').value;" name="shortcut">
        <option value="#">Select a Region</option>
        <option value="/r1">New England (1)</option>
        <option value="/r2">Northeast & Caribbean (2)</option>
    </select>
    <input border="0" hspace="5" src="/btn_go.gif" alt="Go" onclick="if(document.myBrowseForm.action != ''){document.myBrowseForm.submit();} else return false;" type="image">
</form>

选择一个地区

选择一个区域 新英格兰(1) 东北和加勒比地区(2)
您是否尝试了
document.getElementById('organization')。值而不是选项

给予:

<form name="myBrowseForm" action="/portal/" method="post">
    <label for="redirect">Choose a Region</label>
    <br />
    <select id="organization" onchange="document.myBrowseForm.action=document.getElementById('organization').value;" name="shortcut">
        <option value="#">Select a Region</option>
        <option value="/r1">New England (1)</option>
        <option value="/r2">Northeast & Caribbean (2)</option>
    </select>
    <input border="0" hspace="5" src="/btn_go.gif" alt="Go" onclick="if(document.myBrowseForm.action != ''){document.myBrowseForm.submit();} else return false;" type="image">
</form>

选择一个地区

选择一个区域 新英格兰(1) 东北和加勒比地区(2)
也许您可以尝试以下方法:

<form name="myBrowseForm" action="/portal/" method="post">
    <label for="redirect">Choose a Region</label>
    <br />
    <select id="organization" onchange="document.myBrowseForm.action=this.options[this.selectedIndex].value;" name="shortcut">
        <option value="#">Select a Region</option>
        <option value="/r1">New England (1)</option>
        <option value="/r2">Northeast & Caribbean (2)</option>
    </select>
    <input border="0" hspace="5" src="/btn_go.gif" alt="Go" onclick="if(document.myBrowseForm.action != ''){document.myBrowseForm.submit();} else return false;" type="image">
</form>

选择一个地区

选择一个区域 新英格兰(1) 东北和加勒比地区(2)
也许您可以尝试以下方法:

<form name="myBrowseForm" action="/portal/" method="post">
    <label for="redirect">Choose a Region</label>
    <br />
    <select id="organization" onchange="document.myBrowseForm.action=this.options[this.selectedIndex].value;" name="shortcut">
        <option value="#">Select a Region</option>
        <option value="/r1">New England (1)</option>
        <option value="/r2">Northeast & Caribbean (2)</option>
    </select>
    <input border="0" hspace="5" src="/btn_go.gif" alt="Go" onclick="if(document.myBrowseForm.action != ''){document.myBrowseForm.submit();} else return false;" type="image">
</form>

选择一个地区

选择一个区域 新英格兰(1) 东北和加勒比地区(2)
IEs javascript引擎的旧版本强制执行的一件事是唯一元素ID,而其他许多版本则没有。您能再次检查您的元素ID在页面上是否唯一吗?可能是的重复项,并且您这样做的方式似乎正确…您确定没有ID为“organization”的其他元素吗?另外,使用内联javascript,您可以只使用
this
而不是
document.getElementById('organization')
。为什么要在内联事件处理程序中为同一个元素执行
document.getElementById('organization')
?只需使用
这个
。IEs javascript引擎的旧版本强制执行的一件事情是唯一的元素ID,而其他许多版本则没有。您能再次检查您的元素ID在页面上是否唯一吗?可能是的重复项,并且您这样做的方式似乎正确…您确定没有ID为“organization”的其他元素吗?另外,使用内联javascript,您可以只使用
this
而不是
document.getElementById('organization')
。为什么要在内联事件处理程序中为同一个元素执行
document.getElementById('organization')
?只需使用
这个