2013-03-26 101 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")

相關問題