0

在执行下面的代码时,我得到了 javascript 错误 'options.length' is null or not an object。但是,当我在选择标记内的 jsp 中删除“dojotype =”dijit.form.FilteringSelect”时,它工作正常。当 dojotype 属性不在代码中时,警报会打印正确的值,但当 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;
        }
    }
4

1 回答 1

0

这是因为当您将 shoppingCategoryCode1 转换为 Select 小部件时,它不再是<select>DOM 元素。使用您最喜欢的浏览器开发工具并检查对象;你会看到它用表格和隐藏的输入做了一些疯狂的事情。

如果您的目标是选择特定选项,请尝试类似dijit.byId("shoppingCategoryCode1").set("value", "WHOLE")

于 2013-03-27T12:21:12.720 回答