IE7 javascript错误:未定义运行时错误microsoft jscript:dropdownlist
IE7 javascript error: runtime-error microsoft jscript: dropdownlist is not defined
我有另一个由IE7引起的错误(很棒的程序…)我正在尝试将dropdownlist放入javascript函数中,以便使用它的值来隐藏一些以这些值命名的div。但每次我尝试使用这个下拉列表时,我都会收到以下错误:运行时错误microsoft-jscript:未定义dropdownlist
javascript:
<script src="/Scripts/ShowHide.js" type="text/javascript"></script>
function ShowHideDivByDropDownList(dropdownlist) {
for (i = 0; i < dropdownlist.options.lenght; i++) {
var divId = dropdownlist.options[i].value;
if (divId != "") {
document.getElementById(divId).style.display = "none";
}
}
document.getElementById(drowdownlist.value).style.display = "block";
}
下拉列表:
@Html.DropDownList("MainList",
new SelectList(Model.ListCategories,
Model.List,
new { onchange ="ShowHideDivByDropDownList(this)"})
编辑:
我做了一些调整,试图让剧本运行起来,很多人似乎注意到了这一点:)。我已经将脚本返回到原始状态,但错误仍然存在。
如果它是ID,请使用getElementById(id)
,如果它是名称,则使用getElementsByName(name)[0]
。
getElementByName
不存在。
还要小心你的变量名。。。
在for循环中,您有drowdownlish,而不是drowdownlist。为了保持理智,您可能想让那些下线。
function ShowHideDivByDropDownList(dropdownlistid) {
var dropdownlist= document.getElementByName(dropdownlistid);
for (i = 0; i < dropdownlist.options.count; i++) {
var divId = dropdownlist.options[i].value;
if (divId != "") {
document.getElementById(divId).style.display = "none";
}
}
document.getElementById(dropdownlist.value).style.display = "block";
}
你可以避免所有这些混乱-正如这个答案正确地说的那样,你必须使用getElementById
,但如果你把代码改成这样:
onchange ="ShowHideDivByDropDownList(this)"
然后你将实际对象传递给函数,然后你就可以安全地使用这样的代码:
function ShowHideDivByDropDownList(drowdownlist) {
for (var i = 0; i < drowdownlist.options.length; i++) {
var divId = drowdownlist.options[i].value;
if (divId !== "") {
var element = document.getElementById(divId);
if (element)
element.style.display = "none";
}
}
var element = document.getElementById(drowdownlist.value);
if (element)
element.style.display = "block";
}
我一路上也解决了一些问题:
- 在JavaScript中,数组长度是
.length
,而不是.count
- 如果没有这样ID的元素,你的代码就会崩溃——为了避免这种意外,最好验证你是否真的有这样的元素——你可以添加
alert("element does not exist");
进行调试,但因为你有打字错误而导致整个代码崩溃并不是一件好事
相关文章:
- JavaScript错误:Microsoft JScript运行时错误:应为对象
- Microsoft JScript运行时错误:无法获取属性'的值;样式':对象为null或未定义
- Microsoft JScript运行时错误:'Sys'未定义(在mvc3 c#剃刀中)
- JavaScript 错误(Microsoft JScript 运行时错误:对象预期)
- Microsoft JScript运行时错误:对象没有't支持属性或方法'html'
- 如何解决Microsoft JScript运行时错误:'$'未定义
- Microsoft JScript运行时错误:只能注册格式正确的脚本标记
- Microsoft JScript 运行时错误:对象预期异常
- Asp.net:Microsoft JScript 运行时错误:“测试”未定义
- Microsoft JScript 运行时错误:无法获取属性“value”的值:对象为 null 或未定义
- 填充隐藏字段Microsoft JScript 运行时错误:对象不支持此属性或方法
- Microsoft JScript 运行时错误:“Alticore”未定义
- Microsoft JScript运行时错误:无法获取属性'的值;innerHTML':对象为null或
- Kendo TabStrip,获取错误-切换选项卡时应为microsoft jscript运行时错误对象
- Microsoft JScript运行时错误:对象没有't支持属性或方法'__定义Getter__
- IE7 javascript错误:未定义运行时错误microsoft jscript:dropdownlist
- 获取js错误:Microsoft JScript运行时错误:对象没有'不支持此属性或方法
- 为什么"Microsoft JScript运行时错误:应为对象“”;
- Microsoft JScript运行时错误:语法错误,无法识别的表达式:
- Microsoft JScript运行时错误:'clientUploadComplete'未定义