2015-01-21 2 views
0

제출시 jquery의 .valid() 함수에 이상한 문제가 있습니다. , JQuery와 자연스럽게 제출에서에이를 호출,하지만 난jquery .valid() 모든 오프셋 유효성 검사

$("#validateMe").click(function() { 
    alert($("form").valid()); 
}); 

이 문제의 IT가 모든 입력 오프셋 폭/오프셋 높이를 호출 유지하기 때문에입니다 이유는 아래의 문제를 일으키는 JQuery와의 정확한 함수 호출을 추출했습니다 내 확인란을 포함하여.

확인란에 의해 생성됩니다

for (int i = 0; i < Model.CategoryViewModel.ChildCategoryNodes.Count(); i++) 
{ 
    if (Model.CategoryViewModel.ChildCategoryNodes[i].Selected) 
    { 
     @Html.HiddenFor(model => model.CategoryViewModel.ChildCategoryNodes[i].PbMajor) 
     @Html.HiddenFor(model => model.CategoryViewModel.ChildCategoryNodes[i].PbHeading) 
     <label> 
     @Html.CheckBoxFor(model => model.CategoryViewModel.ChildCategoryNodes[i].Selected, new Dictionary<string, object> { { "data-pbmajor", Model.CategoryViewModel.ChildCategoryNodes[i].PbMajor }, { "data-pbheading", Model.CategoryViewModel.ChildCategoryNodes[i].PbHeading } }) 
     @Model.CategoryViewModel.ChildCategoryNodes[i].PbMajor 
     @Model.CategoryViewModel.ChildCategoryNodes[i].PbHeading 
     </label> 
    } 
} 

형태의 offsetWidth의 각 개별 입력의 체크 얻을 수는 offsetHeight. 양식이 매우 작 으면 일반적으로 문제가되지 않지만 페이지에 2000 개의 체크 상자가로드됩니다. 페이지 시간에 전반적으로 느린 사용자 경험이 있지만 너무 많습니다. 이것에 대한 해결 방법이나 수정 내 코드에 대한

Bad Loading Time

모든 답변 도움이 될 것입니다!

+1

클라이언트 대신 서버에서 옵션의 유효성을 검사합니까? –

답변

1

jQuery는 정말로 큰 형태로 속도가 느려지는 것으로 알려져 있습니다. jQuery validate large forms - script running slowlyLong form using jquery Validate causes IE slow script warning을 참조하십시오.

몇 가지 옵션이 있습니다.

  • jQuery의 기본 유효성 검사 기능을 사용자 지정하거나 무시할 수 있습니다. 위의 두 가지 대답은이 예뿐만 아니라이 예를 제공합니다. Custom method with jQuery Validation plugin

  • 양식을 페이지 매기기하십시오. 단일 양식에 ~ 2000 개의 확인란이 정말로 필요합니까? 여러 페이지로 나누는 방법이 있습니까?

  • 서버 측에서 유효성을 검사하십시오. 응용 프로그램 논리가 지원하는 경우 양식이 유효하지 않은 경우에도 제출하도록 허용하고 서버 측에서 유효성 검사 논리를 실행 한 다음 필요한 경우 유효성 검사 메시지가있는 페이지를 반환하십시오.

+0

나는 이것들을 조합 해 볼 수도 있다고 생각한다. 나는 불행하게도 같은 페이지에서 2000 년이 모두 필요하다 (비즈니스 요구 사항). – Richard

+1

HTML5 입력 검사기 사용에 대한 의견이 있으십니까? – Richard

+0

@ 리차드 HTML5 입력 유효성 검사에 대한 경험이 없으므로 이전에 사용하지 않아도되었습니다. 누군가 다른 사람이 그것에 대해 밝힐 수 있습니다. –

관련 문제