1
当拥有ASP.NET验证控件时,显示和隐藏错误消息的触发只涉及特定的验证控件。意思是,如果该控制失败,则仅显示控制错误消息。如何在多个ASP.NET验证控件上显示/隐藏错误消息?
但我有两个dropdownlists应该遵循彼此的错误消息。只有当它们都有价值或没有价值时,它们才是有效的。
这是我的代码:
<script type="text/javascript" language="javascript">
function ValidateDDL(source, args) {
var ddl_1 = $get('<%= DropDownList1.ClientID %>');
var ddl_2 = $get('<%= DropDownList2.ClientID %>');
var value_1 = ddl_1.options[ddlMailValue.selectedIndex].value;
var value_2 = ddl_1.options[ddlMailValue.selectedIndex].value;
if ((value_1== "" && value_2 != "") || (value_1 != "" && value_2 == "")) {
args.IsValid = false;
}
else {
args.IsValid = true;
}
}
</script>
<asp:DropDownList ID="DropDownList1" runat="server" CausesValidation="true"></asp:DropDownList>
<asp:CustomValidator ID="CustomValidator1" runat="server" ControlToValidate="DropDownList1" ValidateEmptyText="true" ClientValidationFunction="ValidateDDL" ></asp:CustomValidator>
<asp:DropDownList ID="DropDownList2" runat="server" CausesValidation="true"></asp:DropDownList>
<asp:CustomValidator ID="CustomValidator2" runat="server" ControlToValidate="DropDownList2" ValidateEmptyText="true" ClientValidationFunction="ValidateDDL" ></asp:CustomValidator>
但是这意味着,当我改变第一下拉列表(由具有价值没有),它验证“假”,因为第二个下拉列表没有一个值呢。但是,当我将第二个下拉列表更改为还包含值时,第一个错误消息仍然可见,因为该控件未经过验证。 当然,这只有视觉上的关注,因为当我试图保存时控件会验证'真'。
但仍......有办法弄到第一个验证控制和设置为第二个相同的状态(反之亦然)?