속성 - jquery val attr



jQuery-특정 요소에 대해 errorPlacement를 사용하는 방법? (2)

파일 html

<label for="Q008" class="control-label titular">Question text 008 by example</small></label>
<input type="text" class="form-control" name="Q008" id="Q008" maxlength="500" />
<div id="Q008error"></div>

<label class="control-label titular">Question text 009 by example</label>
<div class="controls">
    <input type="checkbox" name="Q009" id="Q009_1" value="1" />
    <label for="Q009_1">Text 91</label>
</div>
<div class="controls">
    <input type="checkbox" name="Q009" id="Q009_2" value="2" />
    <label for="Q009_2">Text 92</label>
</div>
<div class="controls">
    <input type="checkbox" name="Q009" id="Q009_3" value="3" />
    <label for="Q009_3">Text 93</label>
</div>
<div class="controls">
    <input type="checkbox" name="Q009" id="Q009_4" value="4" />
    <label for="Q009_4">Text 94</label>
</div>
<div class="controls">
    <input type="checkbox" name="Q009" id="Q009_5" value="5" />
    <label for="Q009_5">Text 95</label>
</div>
<div class="controls">
    <input type="checkbox" name="Q009" id="Q009_6" value="6" />
    <label for="Q009_6">Text 96</label>
</div>
<div id="Q009error"></div>

jquery 유효성 검사 파일

errorPlacement: function(error, element) {
    var elementForm = "", containerError = "";
    offset = element.offset();
    elementForm = element.attr("name");
    containerError = "#" + elementForm + "error";
    error.prependTo(containerError);
    error.addClass('message');
}

체크 박스가 있고 텍스트가 다음과 같습니다.
[확인란] 동의합니다.

제출할 때 확인란을 클릭하지 않으면 오류 메시지를 표시하는 현재 방법은 (나는 errorElement : div를 사용합니다.);

[확인란]
이 입력란은 필수 항목입니다.
동의한다**

나는 오히려 좋아할 것이다.
[확인란] 동의합니다.
이 입력란은 필수 항목입니다.

어떤 생각을 어떻게 할 수 있습니까?.

관련 체크 박스 및 텍스트 요소에 대한 html 포장은 다음과 같습니다.
[div] [checkbox] 동의 함 [/ div] [div] [/ div]

나는 errorPlacment를 시도 했다 : 그 요소만을 위해 그것을 적용하기를 희망하면서 다음과 같이;

...            
messages: {
    usage_terms: {
        required: "Must agree to Terms of Use.",
    //errorElement: "div"
    errorPlacement: function(error, element) {
        error.appendTo( element.parent("div").next("div") );
        }
    }
}
...


그것은 작동하지 않았다. 어떤 생각?.


Answer #1

errorPlacement 는 (옵션으로) 메시지 아래에 있지 않으므로 전역 옵션이므로 대신 다음과 같이 표시되어야합니다.

messages: {
  usage_terms: "Must agree to Terms of Use."
}
errorPlacement: function(error, element) {
  if(element.attr("name") == "usage_terms") {
    error.appendTo( element.parent("div").next("div") );
  } else {
    error.insertAfter(element);
  }
}

여기에 요소 이름을 검사 할 때 요소 이름을 확인하는 중입니다. 예를 들어 클래스와 같이 동작하는 모든 element.hasClass("placeAfter") 하고 element.hasClass("placeAfter") 수행하는 등 다른 검사를 수행 할 수도 있습니다.





errorplacement