Chosen: html5 필수 속성 지원?

에 만든 2012년 03월 04음  Â·  80윔멘튞  Â·  출처: harvesthq/chosen

selected가 선택 입력에서 쎈Ʞ화되멎 선택 태귞에 [style=" display:none "]을 추가하고 닀음곌 같읎 필요한 닀양한 div 태귞륌 생성합니닀.

<select name="country" id="country" style="display: none; " class="chzn-done">
    <option selected="selected" value=""></option>
    ...
</select>

읎것은 ꎜ찮지만 html5 'required' 속성을 낮 선택 태귞에 추가하멎 묞제가 발생합니닀. 귞러멎 선택한 쎈Ʞ화 후에 닀음 마크업읎 생성됩니닀.

<select name="country" id="country" required="required" style="display: none; " class="chzn-done">
<option selected="selected" value=""></option>
...
</select>

사용자가 값을 선택하지 않고 양식을 제출할 때 묞제가 발생합니닀. 사용자에게 람띌우저는 아묎 것도 하지 않는 것처럌 볎입니닀. 싀제로 사용자에게 값을 선택하띌는 였류 메시지륌 표시하지만 CSS가 람띌우저에 선택 요소륌 표시하지 않도록 지시하Ʞ 때묞에 였류 메시지도 표시되지 않습니닀.

읎것은 Chrome에서 발생하며 닀륞 람띌우저의 동작은 잘 몚륎겠습니닀.

솔룚션을 제안할 만큌 깊읎 파고 듀지는 않았지만 양식에 html5 속성을 포핚하Ʞ 시작하멎서 읎것은 묞제입니닀.

Feature Request

가장 유용한 댓Ꞁ

+1

누군가읎 묞제륌 í•Žê²°í•  수 있습니까? 귞것은 ꜀ 였래된 묞제읎며 였늘날 맀우 쀑요한 Ʞ능입니닀. 감사합니닀.

몚든 80 댓Ꞁ

저도 최귌에 읎 묞제륌 발견했습니닀.
필수는 몚든 람띌우저에서 지원되지 않윌므로 제출 시 양식의 요소륌 반복하고 "필수"가 있을 때 거Ʞ에 음부 값읎 있는지 확읞하는 대첎륌 만듀었습니닀.
숚겚진 선택에 값읎 없고 웹킷 묞서에 따띌 사용자에게 겜고하지 ì•Šêž° 때묞에 묞제는 여전히 크롬에 졎재합니닀.
http://trac.webkit.org/wiki/Styling%20Form%20Controls

"검슝 메시지는 의사 큎래슀가 있는 4개의 div 요소와 메시지 텍슀튞에 대한 음부 녞드로 구성됩니닀. 읎러한 의사 큎래슀의 슀타음을 변겜하여 몚양을 사용자 지정할 수 있습니닀."

읎륌 처늬하는 가장 좋은 방법은 유사한 큎래슀륌 사용하여 렌더링된 선택에 추가 마크업을 생성하여 람띌우저에서 Ʞ볞적윌로 슀타음을 지정하거나 잠재적윌로 유횚성 검사에 싀팚한 요소에 의사 요소륌 추가하도록 선택하는 것읎띌고 생각합니닀. :invalid와 같은 CSS에서 적절한 싀팚 조걎을 사용합니닀.

현재로서는 낮 자바슀크늜튞 솔룚션곌 같은 DOM 수쀀 폎백을 사용하는 것읎 유음한 옵션읞 것 같습니닀. 도움읎 된닀멎 여Ʞ에서 제공할 수 있지만 싀제로는 선택한 프레임워크륌 수정하는 방법읎 아니띌 선택한 것에 대한 대첎입니닀.

읎 묞제의 상태는 묎엇입니까? Firefox의 마지막 버전(14.0.1)곌 똑같은 묞제가 있습니닀.

HTML5 속성읎 웹사읎튞에서 점점 더 많읎 사용되Ʞ 때묞에 읎 묞제륌 í•Žê²°í•Žì•Œ 합니닀.

나도 같은 묞제가 있습니닀. 귀하의 대첎 솔룚션을 알고 싶습니닀.

감사 í•Žìš”

큰 묞제가 1개 있고 수정하멎 좋을 2ì°š 묞제가 있는 것 같습니닀.

  • 양식 요소가 유횚하지 않은 겜우(아묎것도 선택되지 않은 겜우) 람띌우저는 읎 필드륌 채우띌는 메시지와 핚께 였류 위치륌 표시하는 작은 플래귞륌 시작합니닀. Firefox에서 선택하멎 핎당 메시지 플래귞가 람띌우저 찜의 왌쪜 하닚에 있습니닀.
  • 잘못된 양식 필드에 대핮 정의된 슀타음읎 없습니닀. Ʞ볞적윌로 Firefox에서는(람띌우저마닀 닀륎지만 몚두 유사한 작업을 수행합니닀) 잘못된 각 양식 필드 죌위에 붉은 빛 횚곌가 나타납니닀. 선택된 선택 상자에는 아묎 것도 표시되지 않습니닀.

첫 번짞 항목읎 더 묞제입니닀. 닀륞 선택 요소 숚ꞰꞰ 방법을 사용하여 읎 묞제륌 í•Žê²°í•  수 있습니까? 숚겚진 선택 요소의 " display:none "을 "position: absolute;visibility: hidden;"윌로 교첎 ꜀ 가까워집니닀 - 죌변 CSS에 더 의졎적읎지만 ...

귞러나 Webkit에서는 작동하지 않습니닀. 였류 플래귞는 웹킷(Chrome)의 선택 상자 슀타음을 상속하는 것 같습니닀. 따띌서 opacity: .5륌 섀정하멎 플래귞도 opacity .5가 됩니닀(예:). 짜슝나.

한 가지 더 - Opera는 있는 귞대로는 제대로 작동하지만 위의 위치 êž°ë°˜ CSS로 변겜하멎 제대로 작동하지 않습니닀. 정말 고통슀럜습니닀.

슀팞 메음을 볎낎서 죄송합니닀. 귞래도 받은 것 같아요! 범위에서 선택 요소륌 래핑하고 래퍌에서 읎 CSS륌 사용하는 겜우(선택 요소에서 display:none을 제거):

width: 0px;
height: 0px;
overflow: hidden;
display: inline-block;
position: absolute;

였류 메시지가 표시되고 동시에 페읎지 흐늄읎 쀑닚되지 않습니닀. 유음한 묞제는 Firefox와 WebKit읎 귞렇지 않윌멎 메시지륌 숚Ꞟ 것읎Ʞ 때묞에 였류 메시지륌 볎Ʞ 위핎 상자륌 볎읎는 상태로 두얎알 한닀는 것입니닀. 읎로 읞핎 선택 상자가 양식을 통핎 탭을 받습니닀.

ê·ž 방법은 제출 시 표시륌 없음에서 읞띌읞 ì°šë‹š(또는 '잘못된' 읎벀튞)윌로 토Ꞁ한 닀음 특정 입력 읎벀튞(마우슀 닀욎 또는 í‚€ 누륎Ʞ와 같은)에서 닀시 토Ꞁ하는 것입니닀.

또한 선택한 상자 바로 아래에 위치륌 지정하여 í•Žê²°í•  수 있는 작은 위치 묞제도 있습니닀.

가능하닀멎 읎에 대한 음종의 낎장 지원을 볎는 것읎 좋을 것입니닀.

여Ʞ에 팚치륌 작성했습니닀: https://github.com/adcSTUDIO/chosen

포핚하Ʞ에 충분히 견고하지 않을 수 있지만 자유롭게 테슀튞하십시였.

@CaptainN 감사합니닀! 제가 귞것을 확읞핎 볎겠습니닀!

@CaptainN , 작동했습니닀. 변겜핎 죌셔서 감사합니닀. 귞러나 였류 팝업의 너비가 선택 상자 자첎의 너비륌 쎈곌하도록 허용하는 방법을 알고 있습니까? 낮 작은 선택 요소 쀑 음부에서는 였류 메시지가 정말 얇아서 잘 볎읎지 않고 음부에서는 읜Ʞ 얎렀욞 수도 있습니닀.

귞렇지 않닀멎 ꎜ찮습니닀. 읎믞 많은 도움을 죌셚습니닀. 닀시 한번 감사합니닀!

@caderade ê·ž 묞제륌 핎결하는 방법을 잘 몚륎겠습니닀. overflow:visible 및 Ʞ타 몇 가지륌 시도했지만 여전히 짧게 표시됩니닀. 몇 가지륌 더 시도하겠습니닀. 귞러나 읎것은 í•Žê²° 방법읎 없을 수 있는 Firefox의 묞제처럌 볎입니닀(읎 플래귞는 음반적윌로 처늬하Ʞ가 ꜀ 얎렵습니닀. ê·ž 빛곌 핚께, 나는 아직 완전히 슀타음링하는 방법을 찟지 못했습니닀).

@CaptainN : 아죌 좋습니닀.

Firefox 17 및 Chrome 23에서 잘 작동합니닀.

HTML5 양식 유횚성 검사륌 전혀 지원하지 않는 IE 8+9에서 필드 값을 변겜할 때 알 수 없는 :valid 선택Ʞ륌 사용하Ʞ 때묞에 JavaScript 였류가 발생합니닀. 따띌서 슀크늜튞가 쀑닚되고 양식읎 IE에서 예상했던 대로 ì–Žë–€ 식윌로든 추핎지지 않습니닀. :smirk: 하지만 였류륌 발생시킀지 않는 것읎 더 좋을 것입니닀. ì–Žë–€ 아읎디얎띌도?

아 귀찮아. 나는 싀제로 jQuery가 나륌 더 볎혞할 것읎띌고 생각합니닀! IE 첎크나 귞런거 추가핎알지...

쌀빈 N.

@CaptainN Chrome에서도 묞제가 있습니닀. Firefox만의 묞제읞지 아닌지 확신할 수 없었습니닀. 하지만 친구, 닀시 한 번 감사합니닀. 멋진 음! 귞래도 너비 묞제륌 í•Žê²°í•  수 있는지 알렀죌십시였.

jQuery에는 의사 선택Ʞ 지원읎 낎장되얎 있고 플러귞읞읎 자첎적윌로 추가할 수 있도록 후크 시슀템읎 있는 것 같윌며, 찟지 못하멎 Ʞ볞 구현윌로 전달합니닀. 귞래서 :required 및 :valid는 였류륌 던집니닀. 폎늬필읎 적용되지 않은 겜우 IE(및 음부 Safari 버전)에서 사용할 수 있습니닀. 의사 선택Ʞ륌 사용하는 대신 닀륞 종류의 첎크읞을 수행할 수 있는지 확읞하겠습니닀. attr("required")을 확읞하여 :required륌 대첎할 수 있는 것 같습니닀. - 아마도 :valid에 대핮 음종의 Ʞ능 감지륌 수행핎알 할 것입니닀. - 아마도 .oninvalid 속성을 확읞할까요?

알겠습니닀. IE 였류륌 수정하는 새 팚치륌 받았습니닀(닀륞 람띌우저에서도 수정핎알 핹). 읎 팚치는 몇 가지 사항을 변겜합니닀(죌의핎알 할 사항 없음). 낮 메몚는 닀음곌 같습니닀.

  • jquery 버전에 있는 읎벀튞 핞듀러의 윔딩 슀타음곌 음치합니닀(on 대신 bind 등).
  • 유횚성을 검사할 때 선택 요소륌 숚Ʞ는 프로토타입 버전을 얻을 수 없습니닀. 양식 요소의 변겜 읎벀튞가 얎떻게든 억제되는 것처럌 볎입니닀(귞렇지 않윌멎 작동핚). 제 생각에는 읎것읎 버귞띌고 생각하지만 제가 소개한 것은 아닙니닀. 추가 조사가 필요합니닀.
  • CSS륌 통한 사용자의 수동 개입읎 필요할 수 있는 잘못된 요소의 위치 지정에 대한 몇 가지 사소한 묞제가 있습니닀(필요한 Ʞ능을 사용하는 겜우에만 묞제).
  • 너비가 짧은 선택 상자는 람띌우저에서 필수 플래귞륌 뭉개지게 합니닀(css륌 통핎 너비륌 섀정하는 겜우 바닐띌 선택 요소에도 묞제가 있음). 나는 í•Žê²° 방법을 찟을 수 없습니닀. 또한 CSS 확장을 확읞하시겠습니까? https://developer.mozilla.org/en-US/docs/CSS/CSS_Reference/Mozilla_Extensions?redirectlocale=en-US&redirectslug=CSS_Reference%2FMozilla_Extensions (한 눈에 아묎것도 찟을 수 없음)
  • uglifyjs가 Windows에서 작동하도록 할 수 없습니닀(낮 저장소에서 .min.js 빌드가 업데읎튞되지 않음) - 낎음 OSX에서 빌드륌 시도하겠습니닀.

@CaptainN UglifyJS 묞제의 겜우 버전 2가 BC가 아니므로 버전 1을 섀치핎알 합니닀. #915는 packages.json을 업데읎튞 쀑입니닀.

npm을 사용하여 버전을 얎떻게 전환합니까?

@CaptainN npm install uglify-js@1 버전 1 IIRC륌 강제 싀행합니닀(귞러나 저는 녾드 전묞가가 아닙니닀). 닀륞 핎결책은 낮 람랜치륌 첎크아웃하고 업데읎튞된 packages.json 파음로 npm install 륌 싀행하는 것입니닀.

낮 작업용 Mac에서 못생ꞎ 버전을 빌드할 수 있었습니닀(아마도 읎전 버전의 uglify-js가 있습니까?). 귞듀은 읎제 낮 늬포지토늬에서 최신 상태입니닀.

현재 jQuery 맛만 사용하고 있습니닀. 더 읎상 IE8/9에서 슀크늜튞 였류가 발생하지 않습니닀. :+1: 곧 업슀튞늌에서 읎 Ʞ능을 볌 수 있습니닀.

우늬는 또한 읎 묞제에 직멎핎 있습니닀. HTML5 유횚성 검사륌 비활성화하는 것 왞에 í•Žê²° 방법읎 있습니까?
@CaptainN 은 ë‚Žê°€ 읜은 낎용에서 수정했습니닀. 귞래서 마슀터 람랜치에서 귞의 selected.jquery.js 파음을 시도했습니닀. 귞러나 msie undefined의 js 였류가 발생합니닀.

나는 귞것을 고쳀닀고 생각했닀. 핎당 포크는 얌마 전의 것읎며 업데읎튞핎알 할 수도 있습니닀. 읎번 죌에 읎 작업을 수행할 수 있는지 확읞하고 IE 버귞륌 삎펎볎겠습니닀.

읎 업슀튞늌을 동Ʞ화했는데 IE에서 정의되지 않은 였류 알늌읎 표시되지 않았습니닀. 낮 저장소륌 닀시 시도하고 여전히 읎 묞제가 표시되멎 알렀죌십시였. (너묎 였래 걞렀서 죄송합니닀)

감사 í•Žìš”!

:+1:

누군가 나륌 위핎 읎것을 요앜할 수 있습니까? 생산 쀀비가 된 포크나 팚치가 있습니까?

낮 dcSTUDIO/Chosen 포크륌 가젞였는 #900곌 핚께 진행되는 pull 요청읎 있습니닀.

원래 선택 상자륌 숚Ʞ는 대신 - 선택읎 필요하고 였류가 있을 때 팚치는 선택 상자륌 선택된 선택 상자 아래에 배치하여 낎장 HTML5 였류 메시지가 올바륞 위치에 표시되도록 합니닀. 펞집: 상자가 "필수"로 표시되지 않고 묎횚화되지 않윌멎 êž°ì¡Ž 동작읎 유지됩니닀.

읎 풀 늬퀘슀튞는 낎장 HTML5 였류 알늌을 표시하는 것 왞에 추가 Ʞ능을 추가하지 않습니닀.

고마워 쌀빈!

2013/7/29 쌀빈 뉎뚌 알늌 @github.com

읎것곌 핚께 진행되는 pull 요청읎 있습니닀 - #900 https://github.com/harvesthq/chosen/issues/900 귞것은 낮 adcSTUDIO/Chosen 포크륌 가젞올 것입니닀.

원래 선택 상자륌 숚Ʞ는 대신 선택읎 필요한 겜우
였류가 발생하멎 팚치가 선택 상자륌 아래에 배치합니닀.
Ʞ볞 제공 HTML5 였류 메시지가 표시되도록 선택된 선택 상자
정확한 위치.

읎 pull 요청은 왞부에 추가 Ʞ능을 추가하지 않습니닀.
낎장 HTML5 였류 알늌을 표시합니닀.

—
읎 읎메음에 직접 답장하거나 Gi tHubhttps://github.com/harvesthq/chosen/issues/515#issuecomment -21750086에서 확읞하섞요.
.

우륎슀 뾌렘
웹사읎튞

멭. 필. NS

씚얎터플띌잠 2
3011 베륞
전화 뷰로: +41 31 311 73 61
전화 몚빌 및 윀볎: +41 76 327 01 51
http://www.ursbraem.ch

개읞:
부덎펠튞슀튞륎. 50
3013 베륞
전화 +41 31 301 41 90

안녕하섞요,
방ꞈ 최신 버전(1.0)을 얻었지만 여전히 읎 묞제가 발생합니닀. 선택 항목읎 필수 속성읎 있는 선택 상자에 추가되멎 Firefox에서 "목록에서 항목을 선택하십시였" 도구 섀명읎 화멎 왌쪜 상닚 몚서늬에 나타납니닀. Chrome에서는 아묎 음도 음얎나지 않습니닀. pull request는 버전 1.0곌 통합되지 않습니까? 핎당 팚치륌 얎떻게 닀욎로드할 수 있습니까? 제가 Github에 익숙하지 않아서 죄송합니닀. 믞늬 감사드늜니닀!

낮 변겜 사항읎 병합되었닀고 생각하지 않습니닀. 낮 포크도 업데읎튞핎알 할 것입니닀. 였랜만입니닀.

아, 너묎 나쁩니닀. 마슀터 람랜치 파읎프띌읞에 있는지 알 수 있습니까? ê·ž 동안 읎 Ʞ능을 사용하Ʞ 위한 제안 사항읎 있습니까?

귞듀읎 읎것을 마슀터에 통합할 계획읞지는 몚륎겠지만 당신읎 할 수 있는 음은 낮 포크륌 사용하고 마슀터에 동Ʞ화하는 것입니닀. 귞러멎 낮 변겜 사항읎 적용된 늬포지토늬에서 최신 업데읎튞륌 얻을 수 있습니닀(가정 충돌 없음) - 또는 닀소 였래된 포크륌 사용하십시였. 불행히도 가까욎 시음 낎에 포크륌 업데읎튞할 시간읎 없습니닀.

여Ʞ 낮 포크 btw가 있습니닀: https://github.com/adcSTUDIO/chosen

고마워, 쌀빈.


알론 게슈
수석 소프튞웚얎 섀계자
MedAdaptics - http://medadaptics.com
(781) 767-7434

2013년 11월 27음 수요음 였후 12시 35분에 Kevin Newman [email protected]읎 닀음곌 같읎 작성했습니닀.

여Ʞ 낮 포크 btw가 있습니닀: https://github.com/adcSTUDIO/chosen

—
읎 읎메음에 직접 답장하거나 Gi tHubhttps://github.com/harvesthq/chosen/issues/515#issuecomment -29403732에서 확읞하섞요.
.

@CaptainN 변겜 사항윌로 PR을 엎었습니까? 읎 토론에서 PR에 대한 링크가 표시되지 않습니닀. 귞늬고 귞것을 검토할 PR읎 없닀멎, 당신의 포크가 검토될 것 같지 않습니닀(ꎀ늬자는 읎믞 시간읎 필요한 제출된 Ʞ여륌 검토하므로 제출되지 않은 Ʞ여륌 찟윌렀고 하지 않습니닀)

PR #900읎 있습니닀. 앜간 엉망입니닀. 얞젠가는 닀시 베읎슀화하고 도움읎 된닀멎 정늬할 수 있을 것입니닀.

선택한 플러귞읞에 대한 <select required> 속성 지원

여볎섞요!
몚든 것읎 맀우 간닚하며 녌의하는 데 2년읎 필요하지 않습니닀. :)
@CaptainN @yaronguez @stof @kenearley

사용자가 옵션을 선택하지 않을 때 <select required>륌 선택 하여 람띌우저 였류 메시지륌 올바륎게 표시하도록 추가하렀멎,

  1. 플러귞읞 JS 윔드에서 선택 태귞에 대한 display:none 섀정을 제거합니닀.
  2. 래핑 <div> 에 <select> 태귞륌 래핑한 닀음 CSS position: relative 륌 추가합니닀 CSS의 읎 <div> 에 대핮.
  3. 위치 추가 큎늜: rect(0,0,0,0); 플러귞읞 JS 윔드에서 <select> 태귞륌 숚Ʞ렀멎

플러귞읞 윔드륌 펞집하는 데 시간을 소비하고 싶지 않닀멎 setAttribute ('style', 'display: visible; position: absolute; clip: rect (0,0,0,0)'); 선택한 플러귞읞을 쎈Ʞ화한 후.

예시:

 핚수 InitChosen() {
  $('select.chzn').each(핚수(읞덱슀) {
  $(읎).chosen({
  disable_search_threshold: 5,
  no_results_text: "НОчегП Ме МайЎеМП!"
  });
  this.setAttribute('슀타음','디슀플레읎:표시; 위치:절대; 큎늜:rect(0,0,0,0)');
  });
 }

귞게 닀알. 아아아아 귞늬고 지ꞈ... DISCO! :)
** "필수" 속성을 지원하는 람띌우저의 겜우.

크롬

--2

파읎얎폭슀

--1

@Aharito 읎렇게 하멎 탭 순서 묞제가 발생하지

@Aharito 감사합니닀. 선택한 v1.1.0에서 잘 작동합니닀. $('select.chzn') 륌 $('.chosen-select') 바꟞ ì„žìš” .

나는 ê·ž 큎늜을 시도했닀고 생각했습니닀: rect 튾멭, 귞늬고 귞것에 대한 몇 가지 묞제륌 발견했습니닀. 아마도 읎전 람띌우저에서? 지ꞈ 작동한닀멎 대당한 음읎띌고 생각합니닀.

낮 솔룚션에도 탭 묞제가 있을 수 있닀고 생각합니닀. (Ʞ억읎 나지 않습니닀. 시간읎 많읎 지났습니닀.) - 필수 속성을 나타낮는 필드에만 팚치륌 적용하여 영향을 쀄였습니닀.

$().chosen() 몚든 혞출에서 읎륌 표쀀화했습니닀.

$.fn.oldChosen = $.fn.chosen
$.fn.chosen = function(options) {
  var select = $(this)
    , is_creating_chosen = !options || _.isObject(options)

  if (is_creating_chosen && select.css('position') === 'absolute') {
    // if we are creating a chosen and the select already has the appropriate styles added
    // we remove those (so that the select hasn't got a crazy width), then create the chosen
    // then we re-add them later
    select.removeAttr('style')
  }

  var ret = select.oldChosen(options)

  if (is_creating_chosen) {
    // https://github.com/harvesthq/chosen/issues/515#issuecomment-33214050
    // only do this if we are initializing chosen (no params, or object params) not calling a method
    select.attr('style','display:visible; position:absolute; clip:rect(0,0,0,0)');
  }
  return ret
}

@ghiculescu 탭윌로 읎동하거나 탭윌로 선택하는 묞제가 핎결되지 않습니까?

@DASPRiD ì‹«ë‹€ .

읎것은 가능한 은폐 솔룚션윌로 얎떻습니까?

완벜하지는 않지만 싀제로 닀음 선택된 대화 상자에 포컀슀륌 전달하여 원래 선택 항목읎 표시되는 것을 쀑지하지만 아마도 또 닀륞 닚계음 수 있습니닀.

"chosen-select"는 특정 큎래슀에 대한 선택에 대한 선택Ʞ음 뿐입니닀. "큎늭 포컀슀"가 ë‚Žê°€ ì—°ê²°í•Žì•Œ 하는 몚든 핎당 읎벀튞륌 포ꎄ하는지 여부는 확싀하지 않지만 닀륞 사람읎 누띜된 것을 말할 수 있습니까?

ë‚Žê°€ 선택한 html 구조에 대핮 뭔가 잘못 읎핎하고 find("a")가 너묎 자유분방합니닀. 더 많은 겜험읎 있는 사람읎 있습니까?

$(".chosen-select").on("click focus",function(event){
    $(this).next(".chosen-container").find("a").trigger(event.type);
});

아, 귞늬고 확싀히 " display:visible "은 " display:block "읎나 귞런 것읎얎알 합니까? 원읞 v isibility:visible 은 유횚하지만 display:visible 은 귞렇지 않닀고 확신합니닀.

ë‚Žê°€ 찟은 것은 동음한 컚테읎너에서 서로 옆에 여러 선택읎 있는 겜우 몚두 잘못된 위치로 옮겚서 position: absolute가 잘못된 위치에 유횚성 검사 메시지가 나타나게 한닀는 것입니닀.

닀음곌 같읎 선택한 컚테읎너에 분늬했닀가 닀시 연결하여읎 묞제륌 핎결했습니닀.

$(".chosen-select").each(function(){
    $(this).next(".chosen-container").prepend($(this).detach());
});

위의 솔룚션은 더 많은 조사 후에 필드륌 통핎 탭 읎동을 완전히 비활성화하고 묞제륌 í•Žê²°í•  수 없음을 볎여 죌지만 탭을 사용할 때 선택 팝업 묞제가 제거되므로 더 많습니닀. 낮 마음에 쀑요한 묞제는 탭을 사용하지 않고 ì‚Ž 수 있닀멎 디슀플레읎가 깚지지 않도록 할 수 있닀는 것입니닀. 더 많은 사람듀읎 몚바음 장치륌 사용하고 탭을 사용하지 ì•Šêž° 때묞에 데슀크톱 사용자에게만 영향을 믞치며 여전히 쀑요하지만 상대적윌로 ꎀ늬할 수 있습니닀.

귞러나 누군가 ì–Žë–€ 식윌로든 읎 묞제륌 핎결한닀멎 맀우 궁ꞈ합니닀.

좋아, 귞래서 ë‚Žê°€ 전에 시도한 것에 더하여, 선택된 읎벀튞가 사용 쀑임을 발견하고 지ꞈ 숚겚진 선택에서 읎벀튞륌 수행할 때 귞것을 가로채고 선택한 읎벀튞륌 튞늬거하여 귞것을 ì—Ž 수 있닀고 결정했습니닀.

나는 귞것읎 잘 작동한닀고 생각합니닀.

$(".chosen-select").each(function(){
    //    take each select and put it as a child of the chosen container
    //    this mean it'll position any validation messages correctly
    $(this).next(".chosen-container").prepend($(this).detach());

    //    apply all the styles, personally, I've added this to my stylesheet
    $(this).attr("style","display:block!important; position:absolute; clip:rect(0,0,0,0)");

    //    to all of these events, trigger the chosen to open and receive focus
    $(this).on("click focus keyup",function(event){
        $(this).closest(".chosen-container").trigger("mousedown.chosen");
    });
});

나는 읎것읎 ë‚Žê°€ 가진 최고의 버전읎띌고 생각합니닀. 닀행슀럜게도 읎것은 앞윌로 탭 읎동 묞제륌 핎결합니닀. 여전히 역 탭 읎동읎 있습니닀. 선택 요소로 탭을 두 번 두 번 큎늭하멎 슉시 선택 컚테읎너에 닀시 쎈점을 닀시 맞추Ʞ 때묞에 선택 선택을 통핎 뒀로 탭할 수 없습니닀. 슉, 앞윌로 탭할 수만 있닀는 핚정에 빠졌습니닀.

읎전 요소륌 추적하는 것읎 아읎디얎음 수 있윌며 읎전에 탭 포컀슀가 있었던 요소가 현재 포컀슀가 있는 요소 앞에 있윌멎 뒀로 읎동한 닀음 선택한 항목윌로 닀시 쎈점을 적절하게 걎너뛰고 읎전 탭을 선택하지만 얎떻게 í•Žì•Œ 할지 잘 몚륎겠습니닀.

아죌 였랫동안 읜은 후, 나는 수년 동안 제출된 제안을 시도했닀고 생각했습니닀.

불행히도 @christhomas 의 윔드륌 작동

좋은 소식은 @ghiculescu 의 새로욎 Ʞ능읎

@DASPriD @charettes 탭읎 수정된 Ʞ능윌로 작동하지 않는닀는 것은 묎엇을 의믞합니까? 귞것은 나륌 위핎 음하는 것 같습니닀

tabindex: -1 을 @ghiculescu 의 슀니펫에 선택하여 추가하멎 탭 묞제가 핎결됩니닀.

예: http://jsfiddle.net/hq7b426j/

나는 지ꞈ 묞제륌 볌 수 있었닀! 귀하의 추가는 훌륭하게 작동합니닀 @andreialecu

귞런데 추가로 필요한 것읎 하나 더 있었습니닀. iPhone 또는 Ʞ타 지원되지 않는 장치에서는 바읎올늰읎 제대로 작동하지 않습니닀. Chosen은 iPhone에서 자신을 비활성화하고 <select> 변겜하지 않고 귞대로 둡니닀. 위의 바읎올늰 윔드는 읎륌 숚겚서 선택곌 상혞 작용할 방법읎 없습니닀.

읎 바읎올늰은 귞것을 수정합니닀(디슀플레읎 추가: 없음 확읞):
http://jsfiddle.net/hq7b426j/1/

아 귞게 더 좋닀!! 감사 í•Žìš”! 저도 아직 테슀튞 쀑읞데 닀륞게 나였멎 Ꞁ 올늬겠습니닀

@CaptainN 동음한 묞제가 있닀고 간략히 섀명하십시였. wr 나는 ê·ž 윔드륌 넣얎알합니닀. wrapbootstrap에서 inspina 테마륌 사용하고 있습니닀.

@vidhyaprakash85 묎슚 말읞지 잘 몚륎겠습니닀. 나는 였래 전에 포크했고 풀 늬퀘슀튞(#900)륌 작성했지만 저장소는 지ꞈ 동Ʞ화되지 않았고 낮 포크는 맀우 구식입니닀. 도움읎 된닀멎 여Ʞ에서 찟을 수 있습니닀: https://github.com/adcSTUDIO/chosen

나는 읎믞 https://github.com/harvesthq/chosen을 사용하고

@andreialecu 윔드가 잘 작동합니닀! 감사 í•Žìš”!!!

@christhomas 덕분에 윔드가 잘 작동했습니닀.댄서:

@christhomas 또는 @ghiculescu 는 닀쀑 귞룹 선택을 사용하여 나륌 위핎 음하지 않았습니닀 . 지ꞈ은 서버 유횚성 검사에 맡Ʞ십시였.

@ghiculescu 팚치륌 시도했을 때 선택 상자 아래에 슀크례읎 항상 표시되는 것을 제왞하고는 작동했습니닀.
@christhomas 팚치륌 시도했을 때 검색 상자가 엎늬지 않고 팝업읎 나타났습니닀.

@ghiculescu 의 슀크늜튞륌 수정하여 읎렇게 두 번

target.find('select')
        .chosen('destroy')
        .chosen({disable_search_threshold: 10})

귞렇지 않윌멎 두 번짞 여행에서 첫 번짞에 추가된 슀타음읎 제거되었습니닀.

$.fn.oldChosen = $.fn.chosen
$.fn.chosen = function(options) {
  var select = $(this)
    , is_creating_chosen = !!options

    var style = 'display:visible; position:absolute; clip:rect(0,0,0,0);'

        if (is_creating_chosen && select.css('position') === 'absolute' && select.attr('style') != style) {
            // if we are creating a chosen and the select already has the appropriate styles added
            // we remove those (so that the select hasn't got a crazy width), then create the chosen
            // then we re-add them later
            select.removeAttr('style')
        }

        var ret = select.oldChosen(options)

        // only act if the select has display: none, otherwise chosen is unsupported (iPhone, etc)
        if (is_creating_chosen && select.css('display') === 'none') {
            // https://github.com/harvesthq/chosen/issues/515#issuecomment-33214050
            // only do this if we are initializing chosen (no params, or object params) not calling a method
            select.attr('style', style);
            select.attr('tabindex', -1);
        }
        return ret
}

&& select.attr('style') != style 겜우 읎 추가 조걎을 첫 번짞 조걎에 추가했습니닀.

@doganmeh Chrome 및 몚바음(Chrome 포핚)에서

읎 http://jsfiddle.net/hq7b426j/1/ 조찚도 Firefox 53.0에서 작동하지 않습니닀.

흠, 하지만 버튌을 더 많읎 큎늭하멎 Firefox가 메시지륌 표시하렀고 시도하는 것을 볌 수 있Ʞ 때묞에 읎것은 Firefox 묞제처럌 볎입니닀(귞러나 완전히 렌더링되지는 않음)

읎 솔룚션을 사용했습니닀. 맀우 간닚하고 완벜하게 작동합니닀.

<style>
    select.submitted:invalid + .chosen-container{
        border-color: red !important;
    }
</style>
$('#yourSelector').chosen({
                no_results_text: "yourText",
                disable_search_threshold: 9,
                search_contains: true
                //your parameters
    }).on('invalid', function(){
        $(this).addClass('submitted');
    });

닀쀑 선택윌로 선택한 겜우 읎것읎 작동하지 않는 것 같습니닀.
http://jsfiddle.net/jeromax/o5a8aogh/

나는 귞것을 고쳀닀.

`
$.fn.oldChosen = $.fn.chosen
$.fn.chosen = Ʞ능(옵션) {
var 선택 = $(읎),
is_creating_chosen = !!옵션;

if (is_creating_chosen && select.css('위치') === '절대') {
// 선택 항목을 만듀고 선택 항목에 읎믞 적절한 슀타음읎 추가된 겜우
// 우늬는 귞것듀을 제거하고(select가 믞친 너비륌 가지지 않도록), ê·ž 닀음 선택된 것을 생성합니닀.
// 귞런 닀음 나쀑에 닀시 추가합니닀.
select.removeAttr('슀타음');
}

var ret = select.oldChosen(옵션)

// 선택에 디슀플레읎가 있는 겜우에만 작동: 없음, 귞렇지 않윌멎 선택읎 지원되지 않습니닀(iPhone 등).
if (is_creating_chosen && select.css('디슀플레읎') === '없음') {
// https://github.com/harvesthq/chosen/issues/515#issuecomment -33214050
// 메서드륌 혞출하지 않고 선택된(맀개변수 또는 객첎 맀개변수 없음) 쎈Ʞ화하는 겜우에만 읎 작업을 수행합니닀.

  $(this).each(function(index){
      if($(this)[0].multiple==true){
          $(this).attr('style','display:visible; width:0px; height:0px; margin-top:25px; position:absolute; clip:rect(0,0,0,0)');
      }else{
          $(this).attr("style","display:visible; position:absolute; clip:rect(0,0,0,0)");
      }
  })

select.attr('탭 읞덱슀', -2);

}
늬턎 렛
}
`

+1

누군가읎 묞제륌 í•Žê²°í•  수 있습니까? 귞것은 ꜀ 였래된 묞제읎며 였늘날 맀우 쀑요한 Ʞ능입니닀. 감사합니닀.

최신 버전에서 작동하지 않습니닀.

읎것은 angular-chosen도 사용할 때 angular.js 양식 유횚성 검사륌 깚는 것 같습니닀.

2018년읞데 여전히 같은 묞제륌 겪고 있습니닀. HTML 표쀀읎 제대로 작동하지 않고 왞부 플러귞읞곌 통합되지 않는 것은 지옥입니닀. 믞친 시간 :)

읎것은 Drupal읎 선택한 플러귞읞도 깚뜚늬는 것입니닀. https://www.drupal.org/project/chosen/issues/2705891 ì°žì¡°

í•Žê²° 방법 읎왞의 적절한 솔룚션을 찟을 수 없습니닀.

<div class="form__select">
  <select class="chosen">
    <!-- options -->
  </select>
</div>
.form__select {
    position: relative;
}

.form__select .chosen {
    display: block !important;
    height: 0;

    position: absolute;
    left: 35px;
    bottom: 0;

    outline: none;
    border-color: white;

    pointer-events: none;
}

몚든 select 요소에 대핮 Chosen을 사용하는 겜우 읎 CSS륌 사용하여 (DOM에) 표시되도록 변겜할 수 있지만 불투명도, 높읎, 절대 위치가 없습니닀.

읎러한 CSS 선택Ʞ는 잘못된 선택 요소륌 대상윌로 하며 ê·ž 쀑 하나가 multiple 륌 대상윌로 15px margin-top 륌 추가하여 닀쀑 선택 요소의 쀑앙에 배치합니닀.

select:invalid {
    height: 0px !important;
    opacity: 0 !important;
    position: absolute !important;
    display: flex !important;
}

select:invalid[multiple] {
   margin-top: 15px !important;
}

데몚: http://jsfiddle.net/tripflex/2zdeu9oc/

하지만 정말 ... 읎것은 읎믞 Chosen.JS 띌읎람러늬에 의핎 처늬되얎알 합니닀.

닀음은 유용한 겜우 낮 í•Žê²° 방법입니닀.

// Initialise Chosen
$(function () {
    $('select').chosen();
});

// Place the original input behind the Chosen input, matching the height and width so that the warning appears in the correct position
$('select').on('chosen:ready', function () {
    const height = $(this).next('.chosen-container').height();
    const width = $(this).next('.chosen-container').width();

    $(this).css({
            'position': 'absolute',
            'height': height,
            'width': width,
            'opacity': 0
        })
        .show();
});

@jonathanbull 컚텍슀튞 낎에서 볎여쀄 수 있습니까? 귀하의 솔룚션을 시도했지만 작동하지 않았습니닀.

@AndrewSouthpaw 읎것은 낮 윔드읎며 수정 사항읎 잘 작동합니닀. :)

$("#select").val([]); // disable default selection by browser
$('#select').on('chosen:ready', function(evt, params, chosen) {
    $(this).css({'position': 'absolute', 'height': 0, 'opacity': 0}).show();
});
$("#select").chosen();

앜간 닀륞 윔드륌 사용하고 있습니닀(여Ʞ에 있는 윔드륌 Ʞ반윌로 핹).

$('.chosen-select').on("chosen:ready", function (evt, data) {
  $(this)
    .addClass('chosen_hidden')
    .attr('tabindex', '-1')
    .prependTo(data.chosen.container)
    .show()
  })
  .chosen({width: '100%'})
.chosen_hidden {
  position: absolute;
  top: 0;
  bottom: 0;
  max-height: 100%; // required for IE 10
  // **not required** opacity: 0;
}

'파ꎎ' 작업을 처늬하지 않지만 였류 메시지륌 적절하게 배치하고 Firefox 및 Chromiun에서 작동하는 것 같습니닀. 원래 선택Ʞ가 숚겚젞 있지 않윌므로 였류 강조 표시 테두늬가 표시됩니닀. 업데읎튞 : max-height 하멎 IE에서도 작동합니닀. Ʞ타 업데읎튞 : tabindex -1을 추가하여 포컀슀륌 받지 않도록 합니닀. (여전히 쎈점을 맞출 수 있고 였류 메시지륌 수신하는 동안).

읎 묞제륌 핎결하는 공개 PR읎 있었지만 대상읎 된 닀륞 슀레드가 닫힌 읎후로 잃얎버늰 것 같습니닀. #2594 ì°žì¡°

@jhedstrom 은 귞것읎 병합되는 것을 볎고 싶얎합니닀. 읎 띌읎람러늬가 여전히 유지 ꎀ늬되고 있는지 알고 있습니까?

위의 @eloyesp 의 솔룚션곌 유사한 것을 사용했윌며 여Ʞ에 공유했습니닀.

https://github.com/harvesthq/chosen/pull/2594#issuecomment -714806139

저륌 올바륞 방향윌로 안낎핎 죌신 @jhedstrom 에게 감사드늜니닀!

읎 페읎지가 도움읎 되었나요?
0 / 5 - 0 등꞉
bleepcoder.com은 공개적윌로 띌읎선슀 된 GitHub 정볎륌 사용하여 전 섞계 개발자에게 묞제에 대한 솔룚션을 제공합니닀. 우늬는 GitHub, Inc. 또는 프로젝튞에 GitHub륌 사용하는 닀륞 개발자와 ꎀ렚읎 없습니닀. 우늬는 서버에서 비디였 나 읎믞지륌 혞슀팅하지 않습니닀. 몚든 권늬는 핎당 소유자에게 있습니닀.
읎 페읎지의 소슀: 출처

읞Ʞ있는 프로귞래밍 ì–žì–Ž
읞Ʞ있는 GitHub 프로젝튞
더 많은 GitHub 프로젝튞

© 2024 bleepcoder.com - Contact
Made with in the Dominican Republic.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.