2015-01-05 3 views
0

다음 HTML이 있습니다. 레이블은 jQuery 유효성 검사 플러그인에 의해 삽입되며 어디에도 배치 할 수 있지만 입력에 직접 따라갈 수는 없다고 생각합니다. 필요한 경우 "연락처 초대"주변에 쉽게 태그를 추가 할 수 있습니다.텍스트 뒤의 레이블 뒤에

레이블을 인라인으로 배치하고 "연락처 초대"텍스트 뒤에 CSS 또는 API를 어떻게 사용할 수 있습니까?

<p id="invite"> 
    <input type="checkbox" checked="" value="1" name="invite" class="error"> 
    <label id="invite-error" class="error" for="invite">Email is required if you wish to invite.</label> 
    Invite Contact 
</p> 
+0

JQuery와 - 유효성 검사는 메시지를 넣 곳과 관련된 몇 가지 옵션이 있습니다. 자신의 DIV를 제공 할 수 있으며이 옵션을 사용하여 DIV를 사용하도록 지시 할 수 있습니다. – Barmar

+0

@Barmar Barmar 감사합니다. 나는 그것을 모르고 그것을 조사 할 것이다. 그러나 이것이 나를위한 선택이 될 것이라는 확신이 없습니다. JSON을 사용하는 PHP 스크립트를 작성하고 두 가지 방법 모두 클라이언트 쪽 규칙/메시지와 서버 측 최종 유효성 검사를 생성하는 데 사용합니다. 나는 그것이 수정 될 수 있다고 확신하지만, 쉽지는 않을 것이다. 이것이 CSS로만 이루어질 수 있다고 생각하십니까? – user1032531

+0

첫 번째 위치에 올바른 DOM 마크 업을 만들 수있는 경우 CSS를 사용하지 마십시오. – Sparky

답변

1

그냥 처음부터 적절한 DOM 마크 업을 만들 수있을 때 CSS를 사용하지 마십시오 .

기본 메시지 배치를 무시하기 위해 jQuery 유효성 검사 플러그인에서 제공하는 the errorPlacement option을 사용하십시오.

$('#myform').validate({ 
    // other options, 
    errorPlacement: function(error, element) { 
     error.insertAfter(element); // <- default, change this to whatever you need 
    } 
}); 

견적 OP :

가 연락을 초대 "나는 쉽게 주위에 태그를 추가 할 수 있습니다" "필요하다면." http://jsfiddle.net/8pawpsht/


하는 것은 제한 할 수 있습니다 :

나는

errorPlacement: function (error, element) { 
    error.insertAfter($(element).next()); 
} 

... 전문 데모를 <span> 태그로 "Invite Contact" 텍스트를 포위하고 데모에서이 기능을 사용 조건부를 사용하여 특정 요소 ...

(210)
errorPlacement: function (error, element) { 
    if ($(element).attr('id') == 'foo') { 
     error.insertAfter($(element).next()); 
    } else { 
     error.insertAfter(element); // <- default 
    } 
} 

DEMO 2 : http://jsfiddle.net/8pawpsht/1/ 또는 http://jsfiddle.net/8pawpsht/2/

+0

폼에 여러 개의 입력이 있지만 기본값과 다른 위치에 배치하기를 원한다면 다음과 같이 입력하면됩니다 : errorPlacement : function (error, element) {var $ e = $ (element); error.insertAfter ($ e.attr ('id') == 'foo'? $ e.next() : $ e); }'? – user1032531

+0

@ user1032531 예, 조건부를 사용하여 특정 요소를 제한 할 수 있습니다. http://jsfiddle.net/8pawpsht/2/ – Sparky

1

확인란을 오른쪽으로 이동하고 레이블을 왼쪽으로 옮길 수 있습니다. 초대장 안에 div를 추가하여이를 제어 할 수 있습니다. 참고로

HTML

<p id="invite"> 
<span class="wrapper"> 
<input type="checkbox" checked="" value="1" name="invite" class="error"> 
<label id="invite-error" class="error" for="invite">Email is required if you wish to invite.</label> 
</span> 
<strong>Invite Contact</strong> 
</p> 

CSS

#invite { 
display:block; 
width:100%; 
height:250px; 
background:#d7d7d7; 
margin:0 auto; 
text-align:center; 
} 
.wrapper { 
background:white; 
display:block; 
border:2px solid #333; 
height:20px; 
width: 275px; 
margin:0 auto; 
} 
.error { 
float:right; 
} 
#invite-error { 
float:left; 
} 

, 체크 아웃 내 codepen here

관련 문제