【发布时间】:2015-09-13 12:26:33
【问题描述】:
如果选中复选框,我正在尝试设置一个文本框、下拉列表和一个带有日期选择器的文本框。因此,如果未勾选复选框,则不需要字段,但如果勾选,则所有字段都是必需的。
<table>
<tbody>
<tr>
<td class="Header">Haz Trained?</td>
<td></td>
<td>
<asp:CheckBox runat="server" ID="chkHazTrained" OnClick="updateValidator();"/>
</td>
</tr>
<tr>
<td class="Header">Haz License No</td>
<td></td>
<td>
<asp:TextBox runat="server" ID="txtHazLicenseNo"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvHazLicenseNo" ControlToValidate="txtHazLicenseNo" ErrorMessage="You must enter a License No." runat="server" />
</td>
</tr>
<tr>
<td class="Header">License Type</td>
<td></td>
<td>
<asp:DropDownList runat="server" ID="ddlHazLicenseType">
</asp:DropDownList>
</td>
</tr>
<tr>
<td class="Header">Expiry Date
</td>
<td></td>
<td>
<asp:TextBox runat="server" ID="txtHazLicenseExpiryDate" rel="datepicker" CssClass="dateonly"></asp:TextBox>
</td>
</tr>
</tbody>
</table>
我尝试创建一个 javascript 函数,但它不能正常工作。即使未勾选复选框,它也会要求填写文本框。如果未勾选复选框,则不需要其他字段。那么我该如何解决这个问题呢?
function updateValidator() {
var enableValidator = !event.srcElement.status;
var rfvHazLicenseNo = document.getElementById('rfvHazLicenceNo');
ValidatorEnable(rfvHazLicenseNo, enableValidator);
}
试用过的客户验证器:
<asp:TextBox runat="server" ID="txtHazLicenseNo" Text=""></asp:TextBox>
<asp:CustomValidator id="CustomValidator2" runat="server"
ControlToValidate = "txtHazLicenseNo"
ErrorMessage = "Please enter"
ClientValidationFunction="validateHazLicence" >
</asp:CustomValidator>
function validateHazLicence(oSrc, args){
if(chkHazTrained.checked == true)
{
args.IsValid = (args.Value.length > 0);
}
}
但是当勾选复选框时,它并不需要文本框。
【问题讨论】:
-
@naveen 我正在尝试学习示例
-
stackoverflow.com/questions/1135134/… 这就是我问的原因。 jQuery 中的事件绑定要容易得多,尽管它只是众多 javascript 库之一
标签: javascript c# asp.net visual-studio