국가 (드롭 다운), 주소 (텍스트 상자), 도시 (텍스트 상자), 주 (드롭 다운) 및 Zip (텍스트 상자). "미국"이 드롭 다운 목록에서 선택되면 City, State 및 Zip의 유효성 만 검사하려고합니다. "유효성 검사"란 길이를 확인한다는 의미입니다."미국"이 국가로 선택된 경우 도시, 주 및 우편 번호 만 확인하십시오.
사용자 정의 유효성 검사기를 사용해 보았지만 겉으로보기에는 작동해야하는 코드가 아무 것도하지 않기 때문에 뭔가 빠졌습니다. 예 :
function validateLocation(sender, args) {
var country = jQuery("#main_2_MailingAddress_Country").val();
var city = jQuery("#main_2_MailingAddress_City").val();
if (city.Length() > 0)
{
args.IsValid = true;
}
else
{
args.IsValid = country != "United States";
}
}
서버 측 유효성 검사 : 그럼 여기
<asp:CustomValidator ErrorMessage="City, State, and Zip are required fields"
Display="None" ID="LocationValidator"
runat="server" ClientValidationFunction="validateLocation"
onservervalidate="LocationValidator_ServerValidate">
</asp:CustomValidator>
내 유효성 검사 코드
클라이언트 측 유효성 검사 인 나는 경우
protected void LocationValidator_ServerValidate(object source, ServerValidateEventArgs args)
{
if (City.Text.Length > 0)
{
args.IsValid = true;
}
else //nothing was entered for "City"
{
args.IsValid = Country.SelectedValue != "United States";
}
//similar functions for State and Zip go here
}
만 do-server-si 유효성 검사 및 폼에 아무것도 채우지 않습니다 (주소 필드 외에도 다른 필수 필드가 있음). 그런 다음 다른 필드에 대한 RequiredFieldValidators가 실행됩니다. 그러나 City, State 및 Zip (미국을 선택한 경우)을 제외한 모든 입력란을 채우면 양식은 비어있는 것을 포착하지 않고 제출됩니다.
위의 예와 같이 사용자 정의 유효성 검사기에 대해 클라이언트 측 유효성 검사기와 서버 측 유효성 검사를 모두 지정하면 유효성 검사기가 실행되지 않고 양식이 제출됩니다.
나는 이것이 길고 혼란스러운 게시물 일 수 있다는 것을 알고 있지만, 내가 잘못 가고있는 것에 대한 아이디어가 있습니까?
포스트 백에서 Page.Validate()를 사용하여 페이지 유효성 검사를 강제로 수행 할 수 있습니다. –