2011-08-23 3 views
3

jquery 유효성 검사 플러그인을 사용하여 ASP.NET MVC 3 면도기를 사용하여 등록 양식을 작성합니다. 그래서 나는이 포함 :MVC3 면도기/JQuery 클라이언트 측 유효성 검사 작동하지 않음

<script src="@Url.Content("~/Scripts/jquery-1.4.4.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"> </script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script> 

내가 내의 Web.config에 다음을 추가했습니다 :

내 면도기 양식은 다음과 같습니다
<appSettings> 
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
</appSettings> 

: 하단에

@model bop.Web.Models.ProfileModel 

@{ 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 
<h2>Page title</h2> 
@Html.ValidationSummary(true) 
@using (Html.BeginForm("Register", "Profile", FormMethod.Post, new { id = "RegForm" })) 
{ 
    <fieldset> 
     <div class="editor-label"> 
      @Html.LabelFor(model => model.companyName) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.companyName) 
      @Html.ValidationMessageFor(model => model.companyName) 
     </div> 
     <div> 
     ... here other input fields ... 
     </div> 
     <a href="#" id="nextbtn1">GO TO STEP 2</a> 
    </fieldset> 

I have :

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#nextbtn1').click(function() { // bind click event to link 
      $("#RegForm").validate(); 
      if ($("#RegForm").valid()) { 
       var $tabs = $('#tabs').tabs(); // first tab selected 
       $tabs.tabs('select', 1); // select second tab 
       return false; 
      } 
     } 
    } 
</script> 

제 등록 양식이 3 개의 탭으로 분할되어 제 3 단계에서 제출을 수행하므로 click 이벤트에서 bind를 사용합니다. 도움이 포인터를 사전에

Run-time error in Microsoft JScript: Object does not support this property or method 'validate' 

많은 감사 :

문제는 내가 클릭했을 때이 오류가 버튼 "2 단계로 이동합니다"는 것이다.

답변

2

형태가 유효한 경우, 당신이 먼저 검증, 그래서 라인 if ($("#RegForm").valid()) {하기 전에 다음과 같은 삽입해야합니다 확인하기 전에 :

$("#RegForm").validate(); 
+0

덕분에 counsellorben, 그냥 일을하지만 지금은 비슷한 오류가 발생합니다 : 를 실행 - Microsoft JScript에서 시간 오류 : 개체가이 속성 또는 메서드 'validate'를 지원하지 않습니다 – User907863

+0

이 트릭이 해결되었습니다. _Layout.cshtml 파일에 jquery.validate.js가 포함되어 있습니다. 내 스크립트에 직접 스크립트를 포함 시키면 모든 것이 잘 동작합니다. 게다가 레이아웃에 모든 스크립트를 포함시키고 각보기에 스크립트를 삽입하지 않는 것이 옳다고 생각합니다. 어떤 생각? 고마워. – User907863

+0

이상합니다. 내 _Layout.cshtml 파일에 스크립트를 포함하고 문제가되지 않았습니다. 스크립트가 레이아웃 파일의 ''요소에 있습니까? – counsellorben

관련 문제