执行以下代码时,我收到javascript错误'options.length'为null或不是对象。但是当我在select标签中的jsp中删除“dojotype =”dijit.form.FilteringSelect“时,它工作正常。当dojotype属性不在代码中时,alert会输出正确的值,但当dojotype属性存在时显示为空白。我不确定是什么导致了这个问题。请求你的宝贵帮助。谢谢。
.jsp
<select name="shoppingCategoryCode1"
id="shoppingCategoryCode1" onchange="RatePlan.onchangeShoppingCategory();
RatePlan.updateStatus(true);"
dojotype="dijit.form.FilteringSelect"
isValid = "RatePlan.shoppingCategoryIsValid1"
invalidMessage="<spring:message
code='rateplan.validation.shopping.category.validation'/>"
>
.js
var sel=dojo.byId("shoppingCategoryCode1");
alert(sel.options.length);
for(var i = 0; i < sel.options.length; i++) {
if(sel.options[i].value == "WHOLE") {
sel.selectedIndex = i;
break;
}
}
答案 0 :(得分:0)
这是因为当您将shoppingCategoryCode1转换为Select小部件时,它不再是<select>
DOM元素。使用您喜欢的浏览器开发人员工具并检查对象;你会发现它会对表格和隐藏输入做一些疯狂的事情。
如果您的目标是选择特定选项,请尝试使用dijit.byId("shoppingCategoryCode1").set("value", "WHOLE")