2014-07-07 4 views
-1

양식에 일부 텍스트 상자가 있습니다. 눈에 거슬리는 jquery 유효성 검사가 작동하고 유효하지 않은 값을 입력하면 박스가 빨간색으로 변합니다. 그러나 양식을 제출하기 위해 클릭하면 양식이 서버에 다시 게시됩니다. 왜?클라이언트 측 유효성 검사. 게시 양식 금지

텍스트 상자가보기 맨 위에 선언 된 모델이 아니기 때문에 그렇습니까?

양식 게시를 방지하려면 어떻게해야합니까?

@model Dictionary<Project, List<ProjectActualCapacity>> 


@{ 
    var model = Model.ToList(); 
} 


@using (Html.BeginForm("ProjectActualCapacityIndex", "Project", FormMethod.Post)) 
{ 
    <hr /> 
    @Html.ValidationSummary(true) 
@for (int i = 0; i < model.Count(); i++) 
{ 
    <tr> 
     <td> 
      @Html.DisplayFor(r => model[i].Key.Name) 
     </td> 
     @for (int j = 0; j < 12; j++) 
     { 
      { 
       <td> 
        @Html.TextBoxFor(r => model[i].Value[j].Hours, new { @class = "form-control input-sm text-right" }) 
        @Html.HiddenFor(r => model[i].Value[j].ID) 
       </td> 
      } 
      @Html.HiddenFor(r => model[i].Key.ID) 
     } 

    </tr> 
} 

<input type="submit" value="Set Values" class="btn btn-default" /> 

}

+0

에는 단순히 텍스트 상자가 포함됩니다. –

+0

몇 가지 예제 코드가 도움이 될 것입니다. – Husman

답변

0
<form action="..." onsubmit="return validateForm()" method="..."> 
... 
<input type="submit" value="Submit"> 
</form> 

당신은 당신의 양식에 대한 위의 코드를 시도 할 수 있습니다. validateForm 메소드는 제출할 양식에 대해 true를 리턴해야하며 false를 리턴하면 양식은 제출하지 않습니다.

0

버튼에

onclientclick="return false;" 

를 추가하면

usesubmitbehaviour="false" 

옵션 (항상, 당신은 선택하기 위해 여기에 로직을 추가 할 필요가) 게시 중지해야합니다. 또한 enablevalidation = "false"로 설정하면 문제가 해결됩니다.

1

web.config에 CliventValidationEnabled 및 UnobstrusiveJavaScriptEnabled가 있는지 확인하십시오 (아래 참조).

<appSettings> 
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/> 
</appSettings> 
관련 문제