문제

다양한 텍스트 상자 컨트롤과 드롭 다운리스트가 포함 된 AccordionPanes가 각각 자체 유효성 검사기를 사용합니다.

양식 제출에서 몇 가지 서버 측 유효성 검사가 발생하면 잘못된 유효성 검사기 메시지가 포함 된 이전에 최소화 된 창을 자동으로 확장 할 수있는 것이 있습니까?그렇지 않으면 이유없이 양식이 제출할 수없는 사용자에게 보일 것입니다.

다른 시나리오 : 입력에 묶인 클라이언트 측 유효성 검사기가있는 여러 창이 있다고 가정 해 봅시다.창이 최소화되면 (따라서 유효성 검사기의 errormessage를 볼 수 없으므로 제출시 Ajax 페이지 유효성 검사가 발생할 때 적절한 창을 확장하는 방법이 있습니까?

나는 모든 검사기와 그 관련된 아코드 이온을 추적하는이 접근 방식에 대한 무차별 방법이 있다는 것을 알고 있지만, 많은 수의 입력 / 유효성 검사기 및 창에 대해 내 상황을 처리 할 수있는 더 나은 솔루션을 희망하고 있었다..

도움이 되었습니까?

해결책

이와 같은 것 (jQuery를 사용하지만 일반 JavaScript로 변환 될 수 있다고 확신합니다) ...

$(document).ready(function(){
    if (isPostback()){
        $.each(Page_Validators, function(index, validator) {
            if (!validator.isvalid) {
            // do something here to locate the accordion based on the validator
            // $(this) is the currently invalid validator element as a jquery object/wrapped set
            // so for example...
                $(this).parent().slideDown();
            // This assumes that the immediate parent of of the validator is the accordion which is unlikely but if you post your emitted html I can write the appropriate selector for you.  
            }
        });
    }
});
.

초기로드에서 화재를 원하지 않기 때문에이 in document.ready 후에 포스트 백에 있는지 확인하십시오. 링크에서 조언을 사용했고 포스트 백 탐지를위한 기능을 ispostback이라고합니다.().

다른 팁

이 문제를 위해 구축 된 프로젝트가 있습니다 .... 당신은 또한 소스를 다운로드 할 수 있습니다. 자세한 내용을 분석하거나 원하는 경우 동일한 코드 기반을 사용하십시오 .... http://www.codeproject.com/articles/43397/validating-Accordion-and-radpanelbar-ajax-AJAX-AN

리치가 나를 때려 눕히지 만 바닐라 JS 버전이 있습니다 (IE9 +) :

Page_Validators
    .filter(function(v) { return !v.isvalid; })
    .forEach(function (v) { console.log(v.parentNode); });
.

-tag 아래 코드를 배치하는 것을 잊지 마십시오.jQuerys document.ready 및 window.onload를 사용하는 데 문제가 있으 셨습니다. ASP.NET에서 필요한 모든 JavaScript가로드되기 전에 코드를 실행할 수 있으므로

업데이트 : 더 많은 브라우저 호환 버전

for(var i = 0; i < Page_Validators.length; i++) {
    var validator = Page_Validators[i];
    if (!validator.isvalid) {
        console.log(validator.parentNode);
    }
}
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top