브라우저에서 asp.net 유효성 검사 서버 컨트롤을 비활성화하려고합니다. 온라인으로 확인했지만 서버 측 유효성 검사를 비활성화하는 방법을 찾지 못했습니다. JS/jQuery를 사용하여 클라이언트 측에서만 비활성화 할 수 있습니다.브라우저에서 asp.net 웹 양식에 대한 서버 측 유효성 검사를 비활성화하는 방법은 무엇입니까?
다음은 시나리오입니다. 확인란이 있고 선택 상자에 텍스트 상자 집합이 표시됩니다. 체크 박스가 체크 된 경우에만 필수 입력란 검사기가 텍스트 상자에 대해 실행됩니다. 난 체크 박스에서 다시 게시를하고 싶지 않아. 실제로 이러한 chceck 상자는 jQuery 템플릿으로 생성되므로 포스트 백이 비활성화 유효성을 활성화하는 옵션이 아닙니다.
일부 설정을 사용하여 브라우저에서 컨트롤의 .CausesValidation 속성을 사용하지 않도록 설정할 수있는 방법이 있는지 알고 싶습니다. 아니면 page_load 전에 일부 이벤트에서 유효성 검사를 위해 고려해야 할 컨트롤을 캡처하는 방법이 있습니까?
허용 답변에 따라 [업데이트] , 여기 내 솔루션입니다 :
<form id="form1" runat="server">
<div>
<asp:TextBox ID="textbox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="req1" ControlToValidate="textbox1" runat="server"
ErrorMessage="enter text"></asp:RequiredFieldValidator>
<asp:TextBox ID="textbox2" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="req2" ControlToValidate="textbox2" runat="server"
ErrorMessage="enter text for 2"></asp:RequiredFieldValidator>
<asp:CheckBox ID="check1" runat="server" Text="choose" />
<asp:Button ID="submitBtn" runat="server" OnClick="submitBtn_Click" Text="submit" />
<asp:CustomValidator ID="cvBox" runat="server" ErrorMessage="Error" ValidationGroup="prueba"
OnServerValidate="Validarcaja"></asp:CustomValidator>
<asp:ValidationSummary ID="summary" runat="server" />
</div>
</form>
protected void Page_Load(object sender, EventArgs e)
{
req1.Enabled = false;
req2.Enabled = false;
}
protected void submitBtn_Click(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
Page.Validate();
if (Page.IsValid)
{
Response.Write("valid form");
}
else
{
Response.Write("invalid form");
}
}
}
protected void Validarcaja(object source, ServerValidateEventArgs args)
{
if (check1.Checked)
{
req1.Enabled = true;
req1.Validate();
}
}
감사 @netadictos .. :) – Amit
@Amit 유효성 검사기의 좋은 체인 ;-) – netadictos