我正在使用C#,asp.net 3.5。我有一个下拉列表,其值如下:
Pick last 24 hrs data
Pick last 48 hrs data
Pick data between dates
当我选择Pick data between dates
时,它会显示两个文本框,用户可以在其中设置“从日期”和“到日期”
我想应用验证,如果用户选择between dates option
,则必须填写日期'文本框,对于其他下拉值,不需要检查文本框的值。
我应该通过jquery / javascript(我已经在做)或者有没有办法通过使用现有的验证控件来实现这一点?
答案 0 :(得分:0)
是的,你可以通过比较验证
来做到这一点请参阅此示例:
<asp:CompareValidator ID="cmpVal1" ControlToCompare="txtStartDate"
ControlToValidate="txtEndDate" Type="Date" Operator="GreaterThanEqual"
ErrorMessage="*Invalid Data" runat="server"></asp:CompareValidator>
答案 1 :(得分:0)
您可以在js中添加custom validation methods。
您也可以在模型中的元素上添加自定义属性(使用C#代码)并编写自定义行为(例如,阅读this answer)。
答案 2 :(得分:0)
在我看来,如果你甚至使用javascript进行验证,你应该在服务器上复制相同的验证。在其他情况下,可以在浏览器中禁用javascript并将无效的表单发送到服务器。如果你想提供漂亮的用户体验,你应该创建javascript验证。
如果您正在寻找纯粹的asp.net方法,您可以执行以下操作: 1)设置下拉列表Autopostback =“true”,每次在下拉列表中更改值时都会触发回发。
<asp:DropDownList id="ddl"
AutoPostBack="True"
runat="server">
2)为您的日期时间字段添加验证控件。
<asp:RequiredFieldValidator />
3)根据所选的下拉值,在回发期间禁用或启用验证控件。