根据DropDownList的“selected”值,根据需要设置TextBox

时间:2016-03-04 01:00:48

标签: c# jquery asp.net

DropDownList

<asp:DropDownList CssClass="DropDownForm" ID="PositionShift" runat="server">
   <asp:ListItem Text="Please Select" Value="" />
   <asp:ListItem Text="option1" Value="1" />
   <asp:ListItem Text="option2" Value="2" />
   <asp:ListItem Text="option3" Value="3" />
   <asp:ListItem Text="option4" Value="4" />
   <asp:ListItem Text="option5" Value="5" />    
   <asp:ListItem Text="option6" Value="6" />
   <asp:ListItem Text="option7" Value="7" />
</asp:DropDownList>

Label

<asp:Label ID="RequisitionNumberLabel" Text="Requisition Number" runat="server"></asp:Label>

TextBox

<asp:TextBox ID="RequisitionNumberTextbox" runat="server"></asp:TextBox>

所以,我希望当选择任何选项1,5或6时,RequisitionNumberTextbox字段应该是必需的,标签上带有“*”。

我找到了一些相关的例子,然后我尝试了Jquery,但我无法自己解决。

3 个答案:

答案 0 :(得分:0)

一种选择是使用AngularJs并根据下拉列表的值设置ng-required属性的值。

答案 1 :(得分:0)

创建了下拉列表中选定的索引更改方法。在该编写代码中,如果选择了选项1,5,6,则更改标签的标题,包括Astrix对名称。还添加一个必需的字段验证器,默认情况下禁用。选择选项1,5,6后,启用验证器。

希望这会奏效。

答案 2 :(得分:-1)

在.cs文件中的SelectedIndexChanged事件中添加以下代码

 protected void PositionShift_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (PositionShift.SelectedIndex == 1 || PositionShift.SelectedIndex == 3 || PositionShift.SelectedIndex == 5)
            {
                RequisitionNumberLabel.Text = "*";
            }
            else
            {
                RequisitionNumberLabel.Text = "Requisition Number";
            }
        }

另外,将DropDownList的Autopostback属性设置为True。