繁体   English   中英

dojotype =“ dijit.form.FilteringSelect”导致'options.length'为null或不是对象javascript错误

[英]dojotype=“dijit.form.FilteringSelect” causing 'options.length' is null or not an object javascript error

在执行以下代码时,我得到javascript错误'options.length'为null或不是object。 但是,当我在select标记中的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;
        }
    }

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM