您好我的Razor表格上有3个控件。 1)组合框,2)DropdownSelect 3)文本输入。 首先,我从Combobox中选择值,因此我向DropdownSelect添加选项。从DropdownSelect中选择一个值后,我想启用或禁用第三个输入框。
当我在1st Combobox中选择一个值时,我可以填充第二个下拉选项。但我无法根据第二次下拉值更改启用或禁用第三个输入框。
以下是示例代码。
<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="true"
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框更改的提醒消息,但没有获取Dropdown更改。
任何想法。请指教。
感谢, 的Vivek
答案 0 :(得分:0)
由于“Plan_PlanType是一个dojox.form,你应该能够检查它是否'有效'作为启用最后一个文本框的方法。所以,像:
if(dojo.byId("Plan_PlanType").validate()){
dojo.byId("Plan_Name").set("enabled", true);
}
但是,您可能需要将其包装在dojo.connect函数中。
答案 1 :(得分:0)
我使用了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>
感谢您的帮助。