1

많은 답변을 찾았지만 jQuery UI 대화 상자에서 필드의 유효성을 검사 할 수 없습니다. 동일하게 적절한 방법을 제안하십시오.jQuery UI 대화 상자에서 클라이언트 측 유효성 검사가 작동하지 않습니다.

부모보기 :

<div id="dialog" title="Add New"> 
    <p>Div content</p> 
</div> 

<script type="text/javascript">$(function() { 
     $('#btnAddNew').click(function() { 
      $('#dialog').dialog 
      ({ 
       autoOpen: true, 
       modal: true, 
       open: function (event, ui) { 
        $(this).load("@Url.Action("AddNewFormPart1")"); //Rendering Partial View 
       } 
      }); 
     }); 
    }); 
<script/> 

부분보기 :

콘텐츠가 플러그인 호출 후에로드됩니다 때문입니다
@using (Html.BeginForm("SubmitFormPart1", "Home", FormMethod.Post, new { @id = "formPart1" })) 
{ 
    @Html.ValidationSummary() 
    <div>...... 
    <input type="submit" value="Submit" id="btnSubmitFormPart1"/> 
    </div> 
} 
+0

은 jquery-unobtrusive가 포함되어 있습니까? –

+0

예, jquery-unobtrusive.js가 포함되어 있습니다. –

+0

브라우저 -> 콘솔 탭에서 개발자 도구를 열고 거기에 JS 오류가 있는지 확인하십시오. – Uriil

답변

1

Validator는 부분 페이지를로드 한 후에 부분 페이지를 구문 분석해야합니다. 눈에 거슬리지 않는 검증을 사용하는 경우 :

$(this).load('@Url.Action("AddNewFormPart1")', function(response, status, xhr){ 
    var form = $("#AddNewFormPart1"); 
    form.removeData('validator'); 
    form.removeData('unobtrusiveValidation'); 
    $.validator.unobtrusive.parse(form); 
}) 
+0

jQuery의 버전이 .done()을 지원하는지 알려주십시오. JS 오류가 발생합니다. jquery-1.7.1.js를 사용하고있었습니다. –

+0

답변이 업데이트되었습니다. 자세한 내용은 [jQuery load()] (http://api.jquery.com/load/)를 참조하십시오. –

+0

감사합니다. 고마워요! –

0

! 다음과 같이 부분 뷰를로드 한 후 유효성 검사 플러그인을 호출해야합니다 (.done(function*({}) 도우미에 유의하십시오).

<script type="text/javascript">$(function() { 
    $('#btnAddNew').click(function() { 
     alert('Add New clicked!'); 
     $('#dialog').dialog 
     ({ 
      autoOpen: true, 
      modal: true, 
      open: function (event, ui) { 
       $(this).load("@Url.Action("AddNewFormPart1")").done(function(){ 

        //CALL YOUR VALIDATION PLUGIN HERE 
        //$('#formPart1').validate({...}); 
       }); //Rendering Partial View 
      } 
     }); 
    }); 
}); 
+0

"Microsoft JScript 런타임 오류 : 개체가 속성 또는 메서드 '완료'를 지원하지 않습니다." –

+0

jQuery의 이전 버전을 사용하고 있습니까? 나는 당신이 jQuery 1.9를 사용할 것을 제안한다. – Bellash

+0

나는 jquery-1.7.1.js를 사용하고 있었다. jquery-1.9.1.js로 변경하면 jquery-unobtrusive-ajax.js에서 js 오류가 발생합니다. –

관련 문제