javascript로 양식 마법사를 만들려고하는데 나는 눈에 띄지 않는 확인란의 유효성 검사에 문제가 있습니다. 페이지 머리 부분에는 눈에 거슬리지 않는 유효성 검사 스크립트 파일이 포함되어 있으며 이후에이 코드를 추가했습니다. jQuery.validator.unobtrusive.adapters.addBool("brequired", "required");
전체 양식을 제출하면 작동합니다. 하지만 내가 말했듯이 나는 마법사를 만들고 싶다. 그래서 나는 (I의 단계 숨어 스트립)이 내용과 형식 후 몸이 스크립트 파일을 추가 :rebarsse 유효성 검사기 후 재검색 유효성 검사 어댑터가 작동하지 않음
var $jq = jQuery.noConflict();
if ($jq(document).ready()) {
//remove data-val attribute from all field in form
$jq('#form-wizard > div[id^=form-step] *')
.filter("input,select").removeAttr("data-val");
}
function validate(form, currentStep) {
//add data-val attribute to the field which I want validate in this step
form.find("#form-step-" + currentStep + " *")
.filter("input, select").attr("data-val", "true");
//without this, parse() function will not update validator
//regardless any changes in form (added data-val="true" attribute)
form.removeData("validator").removeData("unobtrusiveValidation");
//I try add adapter again before parse but it don't work
//$jq.validator.unobtrusive.adapters.addBool("brequired", "required");
$jq.validator.unobtrusive.parse(form);
if (!form.valid()) {
form.children("#form-step-" + currentStep + " *")
.filter("input, select").removeAttr("data-val");
return false;
}
form.children("#form-step-" + currentStep + " *")
.filter("input, select").removeAttr("data-val");
//reset jQuery Validate's internals
form.validate().resetForm();
//reset unobtrusive validation summary, if it exists
form.find("[data-valmsg-summary=true]")
.removeClass("validation-summary-errors")
.addClass("validation-summary-valid")
.find("ul").empty();
//reset unobtrusive field level, if it exists
form.find("[data-valmsg-replace]")
.removeClass("field-validation-error")
.addClass("field-validation-valid")
.empty();
return true;
}
이의 validate() 함수가 다음 버튼을 클릭 한 후라고합니다. 그러나이 스크립트를 포함 시키면 어댑터와 같은 이음새가 작동하지 않습니다. Chcekbox가 유효하지 않습니다. 체크섬을 포함하여 모든 필수 필드를 구문 분석하기 전에 data-val="true"
집합을 확인했습니다.
편집 :
<form id="form-wizard">
<div id="form-step-1">
<input>
...
<input>
</div>
<div id="form-step-2">
<input>
...
<input>
</div>
</form>
나는 정말 내가 놓친 거지 모르는 : 나의 양식은이 구조를 가지고있다.
아니 정확히 몰라, 내가 ID = "# 양식 - 스텝 - (일부 번호로 된 div를 가지고있는 하나의 양식을 가지고) ". 그리고이 divs에서 나는 fieldset을 가지고 있습니다. – CoCumis