2013-03-26 106 views
0

在执行下面的代码时,我得到javascript错误'options.length'为null或不是对象。但是,当我在选择标记中的jsp中删除“dojotype =”dijit.form.FilteringSelect“时,它工作正常。当dojotype属性不在代码中时,alert会打印正确的值,但在出现dojotype属性时显示空白。我不知道是什么原因造成的问题。请求您的宝贵帮助。谢谢。dojotype =“dijit.form.FilteringSelect”导致'options.length'为空或不是对象javascript错误

.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

这是因为,当你打开shoppingCategoryCode1成选择控件,它不再是一个<select> DOM元素。用你喜欢的浏览器开发者工具和检查对象;你会发现它使用表格和隐藏输入做了一些疯狂的事情

如果你的目标是选择一个特定的选项,尝试一下hing like dijit.byId("shoppingCategoryCode1").set("value", "WHOLE")

相关问题