이 질문에 100 번 답변을 드리며 모두 읽었지만 유효성 검사가 실패한 후에도 양식이 제출됩니다. 나는 1.9.0보다 높은 jquery.validate를 사용하지 않는 것에 대한 참조를 발견했다. 그래서 나는 (1.11을 사용하고 있었지만) 변경하지 않았다.유효성 검사 실패 후 MVC 양식이 제출됩니다.
유효하지 않은 양식 (제출 한 내용 없음)과 함께 제출하면 오류 메시지가 나타나고 양식이 제출됩니다.
나는 과거에 두 번 유효성 검사를 성공적으로 구현했으며, 이번에는 어떤 것이 다른지 알 수 없습니다. 나는 신선한 머리카락이 무언가를 볼 수 있기를 바랄 때부터 머리를 두드리는 일을 중단해야한다.
--Scripts :
<script src="@Url.Content("~/Scripts/jquery-1.9.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui-1.10.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
모델 :
[Display(Name = "First Name *")]
[StringLength(20)]
[Required(ErrorMessage = "Required.")]
public string FirstName { get; set; }
[Remote("CheckDuplicatePerson", "Validation", AdditionalFields = "FirstName", ErrorMessage="Person Exists")]
[Display(Name = "Last Name *")]
[StringLength(30)]
[Required(ErrorMessage = "Required.")]
public string LastName { get; set; }
보기 :
<div class="PersonForm">
@using (Html.BeginForm("AddPerson", "Person", FormMethod.Post))
{ @Html.ValidationSummary(true)
<div id="editor-left">
<div class="formGroup">
<div class="editor-label">
@Html.LabelFor(model => model.FirstName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.FirstName) <br />
@Html.ValidationMessageFor(model => model.FirstName)
</div>
</div>
<div class="formGroup">
<div class="editor-label">
@Html.LabelFor(model => model.MiddleName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.MiddleName)
</div>
</div>
<div class="formGroup">
<div class="editor-label">
@Html.LabelFor(model => model.LastName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.LastName) <br />
@Html.ValidationMessageFor(model => model.LastName)
</div>
</div>
<div class="controls"><hr />
<input type="submit" class="skbutton" value="Next Page" />
</div>
}
</div>
UPDATE :
JQuery와 1.9.1 파일에 JS 오류가 이 코드 조각에 :
parseJSON: function(data) {
// Attempt to parse using the native JSON parser first
if (window.JSON && window.JSON.parse) {
return window.JSON.parse(data);
}
JavaScript 오류가 발생했는지 확인 했습니까? –
좋은 생각. 좋아, jquery 1.9.1 파일에 '예기치 않은 토큰'오류가 있습니다. 오류가있는 코드를 보여주기 위해 OP를 편집했습니다. – BattlFrog
CheckDuplicatePerson 원격 검증에 실패 했습니까? 유효성 검사를 제거하면 작동합니까? –