我有一个用户控件,它包含一系列单选按钮和一些文本框。如果选中某个单选按钮,我想验证两个文本字段的内容。CustomValidator Javascript函数认为单选按钮没有被选中
我的控制标记包含此:
<asp:TextBox ID="FromDate" runat="server" Columns="8"></asp:TextBox>
<asp:TextBox ID="ToDate" runat="server" Columns="8"></asp:TextBox>
<asp:RadioButton runat="Server" ID="RadioBetween" GroupName="Date" CssClass="date_group_options_control_radio"/>
<asp:CustomValidator ID="DateValidator" runat="server" Display="Dynamic" ClientValidationFunction="ValidateDateFields_Client" OnServerValidate="ValidateDateFields"></asp:CustomValidator>
<script type="text/javascript">
function ValidateDateFields_Client(source, args)
{
debugger;
var bRadioBetweenSelected = false;
var oRadio = document.getElementById('<%=RadioBetween.ClientID%>');
if (oRadio != null && (oRadio.checked == true || oRadio["checked"] == true))
{
bRadioBetweenSelected = true;
}
if (bRadioBetweenSelected)
{
var oFromDate = document.getElementById('<%=FromDate.ClientID%>');
var oToDate = document.getElementById('<%=ToDate.ClientID%>');
if (oFromDate != null && oToDate != null)
{
var sFromDate = oFromDate.value;
var sToDate = oToDate.value;
source.innerHTML = ValidateFromToDate(sFromDate, sToDate, args);
}
else
{
args.IsValid = true;
}
}
else
{
args.IsValid = true;
}
}
</script>
ValidateFromToDate只检查值,并确保他们是理智的。
它永远不会进入检查,因为我似乎无法分辨RadioBetween是否被选中。然而,服务器端代码工作正常(它完全一样)。
如果我在控件中手动设置“检查”为“true”,则按预期工作。
如何验证此客户端以保存到服务器的旅程?我究竟做错了什么?这应该是相当琐碎的代码:-)
是的,有3个单选按钮全部选择它们是相互排斥的 – 2010-11-23 15:38:54