dojo.connectwithdojox.form.DropdownSelect

dojo.connectwithdojox.form.DropdownSelect,dojo,Dojo,嗨,我的剃须刀窗体上有3个控件。1个组合框,2个下拉框选择3个文本输入。 首先,我从Combobox中选择value,并因此向DropdownSelect添加选项。在我从DropdownSelect中选择一个值后,我想启用或禁用第三个输入框 当我在第一个组合框中选择一个值时,我能够填充第二个下拉选择。但我无法根据第二个下拉值的变化启用或禁用第三个输入框 下面是示例代码 <input type="text" dojoType="dijit.form.ComboBox" style="marg

嗨,我的剃须刀窗体上有3个控件。1个组合框,2个下拉框选择3个文本输入。 首先,我从Combobox中选择value,并因此向DropdownSelect添加选项。在我从DropdownSelect中选择一个值后,我想启用或禁用第三个输入框

当我在第一个组合框中选择一个值时,我能够填充第二个下拉选择。但我无法根据第二个下拉值的变化启用或禁用第三个输入框

下面是示例代码

<input type="text" dojoType="dijit.form.ComboBox" style="margin-top: 5px;" class="left" store="regionStore" queryExpr="${0}" hasDownArrow="true" 
    searchAttr="text" labelAttr="name" title="Region" id="Plan_RegionName" jsId="Plan_RegionName" name="Plan.RegionName" required="true" placeholder="None" ignoreCase="true" /> 

<select name="Plan.PlanType" id="Plan_PlanType" title="Plan Type" dojoType="dojox.form.DropDownSelect" required="true" maxHeight="125" labelwidth="185px" style="width: 180px">    
    <option value="" selected="selected">-- Select One --</option>    
    <option value="Trial">Trial</option>    
    <option value="PerUser">Per User</option>    
    <option value="PerUnit">Per Unit</option>    
    <option value="Reseller">Reseller</option>    
    <option value="Other">Other</option>    
</select>        
<div dojoType="dijit.form.ValidationTextBox" style="width: 180px; margin-top: 5px;" id="Plan_Name" title="Plan Name" name="Plan.Name" required=&quot;true&quot; 
    missingMessage="This value is required" promptMessage="Enter a value" value="">

<script text/type="javascript"> 
    dojo.addOnLoad(function () {
            dojo.connect(Plan_RegionName, "onChange", Plan_RegionName, function (evt) {
                alert("Combo box Changed!");
            });

            dojo.connect(Plan_PlanType, "onChange", Plan_PlanType, function (evt) {
                alert("Dropdown Changed!");
            });    
        });

</script>
我会收到Combox框更改的警告消息,但不会收到下拉列表更改的警告消息

任何想法。请给我一些建议

谢谢,
Vivek

由于Plan_PlantType是一个dojox.form,您应该能够检查它是否“有效”,以启用最后一个文本框。比如说:

 if(dojo.byId("Plan_PlanType").validate()){
    dojo.byId("Plan_Name").set("enabled", true);
}

但是,您可能需要将其包装在dojo.connect函数中

我使用了Selectbox的onChange事件。 这是一个例子

<select name="@name" id="@id" title="@ViewData.ModelMetadata.GetDisplayName()" onChange="enablePlanname(this.getValue())" dojoType="dijit.form.ComboBox" required="true" maxHeight="125" style="width: 180px; margin-top: 5px;">
@if (String.IsNullOrEmpty(Model))
{
    <option value="" selected="selected">-- Select One --</option>
}
@foreach (CurrencyType bt in Enum.GetValues(typeof(CurrencyType)))
{ 
    bool selected = false;
    if (bt.ToString() == Model)
    {
        selected = true;
    }
    <option value="@bt.ToString()"@(selected ? " selected=\"selected\"" : "")>@bt.GetDisplayName()</option>
}
</select>

<script type="text/javascript">

function enablePlanname(value) {
        var CurrentTextBox = dijit.byId('Region_Currency');
        if (value == "other") {            
            CurrentTextBox.set("disabled", false);
        }
        else {
            CurrentTextBox.set("disabled", true);
        }
    }

</script>

谢谢您的帮助。

我如何将其包装到Dojo.connect中?与此类似,dojo.connectPlan_PlanType、onChange、Plan_PlanType、函数evt{if dojo.byIdPlan_PlanType.validate{alerthi;//dojo.byIdPlan_Name.setenabled,true;};