【发布时间】:2014-09-15 16:55:08
【问题描述】:
我有一个包含 5 个不同选项的组合框,“一个玩家”、“两个玩家”、“三个玩家”等。我的要求是当用户从组合框中选择某些内容时,它们的等效文本框应该变得可见,即如果“一个播放器”被选中,应出现一个文本框,以便用户输入值。二三也一样。请提出建议。
【问题讨论】:
标签: javascript vb.net combobox textbox
我有一个包含 5 个不同选项的组合框,“一个玩家”、“两个玩家”、“三个玩家”等。我的要求是当用户从组合框中选择某些内容时,它们的等效文本框应该变得可见,即如果“一个播放器”被选中,应出现一个文本框,以便用户输入值。二三也一样。请提出建议。
【问题讨论】:
标签: javascript vb.net combobox textbox
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
If ComboBox1.Text.Trim.Contains("Player 1") = True Then
TextBox1.Visible = True
TextBox2.Visible = False
TextBox3.Visible = False
ElseIf ComboBox1.Text.Trim.Contains("Player 2") = True Then
TextBox1.Visible = True
TextBox2.Visible = True
TextBox3.Visible = False
ElseIf ComboBox1.Text.Trim.Contains("Player 3") = True Then
TextBox1.Visible = True
TextBox2.Visible = True
TextBox3.Visible = True
End If
End Sub
【讨论】:
只需将 jquery (https://api.jquery.com/change/) 中可用的 .change() 函数与 css 可见性 (visibility:hidden/visible; check http://www.w3schools.com/cssref/pr_class_visibility.asp) 结合起来
$( "#myComboBox" ).change(function() {
//do what you have to do here
});
【讨论】:
试试这样的:
Sub cbC(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
Select Case ComboBox1.SelectedIndex
Case 0
TextBox1.Visible = False
TextBox2.Visible = False
Case 1
TextBox1.Visible = True
TextBox2.Visible = False
Case 2
TextBox1.Visible = True
TextBox2.Visible = True
End Select
End Sub
或者这个,根据更适合您的需求:
Sub cbC(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
TextBox1.Visible = (ComboBox1.SelectedIndex = 0)
TextBox1.Visible = (ComboBox1.SelectedIndex = 1)
End Sub
【讨论】:
TextBox1.Visible = (ComboBox1.SelectedIndex = 0) 完美运行。
您还必须确保为您的文本框和标签将属性下的可见设置为 False。否则,当您运行应用程序时,您的文本框最初将是可见的。
【讨论】: