У меня есть пользовательский элемент управления, который содержит ряд переключателей и некоторые текстовые поля на нем. Если установлен определенный переключатель, я хочу проверить содержимое двух текстовых полей.
Моя контрольная разметка содержит это:
<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 или нет. Однако код на стороне сервера работает нормально (что делает то же самое).
Если я вручную установил Checked как «true» в элементе управления, он будет работать как положено.
Как я могу проверить эту сторону клиента, чтобы сохранить поездку на сервер? Что я делаю неправильно? Это должен быть довольно тривиальный код: -)