Chosen: 원격 데이터 μ†ŒμŠ€μ—μ„œ κ°€μ Έμ˜€κΈ°

에 λ§Œλ“  2011λ…„ 07μ›” 27일  Β·  47μ½”λ©˜νŠΈ  Β·  좜처: harvesthq/chosen

jQuery UI μžλ™ μ™„μ„± κΈ°λŠ₯κ³Ό ν•¨κ»˜ μž‘λ™ν•˜λŠ” 방식을 λ³΄μ—¬μ£ΌλŠ” μƒ˜ν”Œ μ½”λ“œκ°€ μžˆμŠ΅λ‹ˆκΉŒ? 그렇지 μ•Šλ‹€λ©΄ 이것을 κΈ°λŠ₯ μš”μ²­μœΌλ‘œ κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆκΉŒ?

Feature Request

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

@juanghurtado : 300K ν•­λͺ©μ΄ ν¬ν•¨λœ 닀쀑 선택 μƒμžκ°€ μžˆλŠ” 경우 HTML에 μ™„μ „νžˆ μ“Έ 수 μ—†μŠ΅λ‹ˆλ‹€. Chosen은 검색 및 선택을 μœ„ν•œ μ™„λ²½ν•œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. 이 κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” λ‹€λ₯Έ λ§Žμ€ λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μžˆμŠ΅λ‹ˆλ‹€(예: [1], [2] λ“±). 이 λͺ¨λ“  것 μ€‘μ—μ„œ Chosen이 κ°€μž₯ 잘 μž‘λ™ν•˜μ§€λ§Œ 원격 데이터 μ†ŒμŠ€ 지원에 μΆ”κ°€λ˜λŠ” 맀우 큰 μ»¬λ ‰μ…˜μ€ μ§€μ›ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ˜ν•œ Chosen이 이λ₯Ό μ§€μ›ν•œλ‹€λ©΄ 두 κ°œκ°€ μ•„λ‹Œ ν•˜λ‚˜μ˜ ν”ŒλŸ¬κ·ΈμΈμ„ μŠ€ν‚¨ν•˜κ³  μ΅œμ‹  μƒνƒœλ‘œ μœ μ§€ν•΄μ•Ό ν•©λ‹ˆλ‹€.

[1] http://loopj.com/jquery-tokeninput/
[2] http://wharsojo.wordpress.com/2008/02/18/jquery-facebook-autocomplete/

λͺ¨λ“  47 λŒ“κΈ€

이것은 jquery μžλ™ 완성보닀 쑰금 낫지 μ•ŠμŠ΅λ‹ˆκΉŒ? ꢁ극적으둜 원격 데이터 μ†ŒμŠ€λ₯Ό 보고 μ‹ΆμŠ΅λ‹ˆλ‹€(검색 결과에 λŒ€ν•œ 콜백 제곡 κΈ°λŠ₯)

λ‚˜λŠ” 이 μš”μ²­μ„ μ„Έ 번째둜 ν•©λ‹ˆλ‹€. jQuery UI μžλ™ μ™„μ„± κΈ°λŠ₯처럼 원격 μ†ŒμŠ€λ₯Ό 지정할 수 μžˆλŠ” κΈ°λŠ₯이 있으면 맀우 νŽΈλ¦¬ν•©λ‹ˆλ‹€.

λ˜λŠ” 더 λ‚˜μ€ 방법: jQuery UIμ—μ„œ μ„ νƒν•œ ν•­λͺ©μ„ ν¬ν•¨ν•©λ‹ˆλ‹€. :)

+1

더 ꡬ체적으둜 λ‚΄ +1은 자유 ν…μŠ€νŠΈ ν•­λͺ©κ³Ό ν•¨κ»˜ 원격 데이터 μ†ŒμŠ€λ₯Ό μ‚¬μš©ν•˜λŠ” 아이디어에 λŒ€ν•œ κ²ƒμž…λ‹ˆλ‹€(예: νƒœκ·Έ 지정을 돕기 μœ„ν•΄ ajax 호좜 μ‚¬μš©)

μ£„μ†‘ν•©λ‹ˆλ‹€. μΆ©λΆ„νžˆ λͺ…ν™•ν•˜μ§€ μ•Šμ•˜μ§€λ§Œ "원격 데이터 μ†ŒμŠ€" 톡합이 μ›λž˜ μ˜λ„ν•œ κ²ƒμ΄μ—ˆμŠ΅λ‹ˆλ‹€. 지적해 μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€. λ¬Όλ‘  이 ν”ŒλŸ¬κ·ΈμΈμ€ jQuery μžλ™ μ™„μ„± κΈ°λŠ₯보닀 훨씬 λ‚«μŠ΅λ‹ˆλ‹€. daFishκ°€ μ–ΈκΈ‰ν–ˆλ“―μ΄ jQuery UI 자체의 μΌλΆ€λ‘œ 이것을 보고 μ‹ΆμŠ΅λ‹ˆλ‹€.

원격 데이터 μ†ŒμŠ€ 지원을 μœ„ν•΄ +1

λ‚˜λŠ” 그것을 μ΄ν•΄ν•˜μ§€ λͺ»ν•œλ‹€. μ„ νƒλœ 것은 μžλ™ μ™„μ„±μ΄λ‚˜ 원격 데이터 κ°€μ Έμ˜€κΈ°κ°€ μ•„λ‹ˆλΌ SELECT μš”μ†Œμ— λŒ€ν•œ 더 λ‚˜μ€ μ‚¬μš©μ„±κ³Ό 아름닀움에 κ΄€ν•œ κ²ƒμž…λ‹ˆλ‹€. 원격 데이터λ₯Ό μ›ν•˜λ©΄ Chosen 호좜 전에 μˆ˜μ§‘ν•˜μ—¬ de DOM에 λ„£μŠ΅λ‹ˆλ‹€.

@juanghurtado : 300K ν•­λͺ©μ΄ ν¬ν•¨λœ 닀쀑 선택 μƒμžκ°€ μžˆλŠ” 경우 HTML에 μ™„μ „νžˆ μ“Έ 수 μ—†μŠ΅λ‹ˆλ‹€. Chosen은 검색 및 선택을 μœ„ν•œ μ™„λ²½ν•œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. 이 κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” λ‹€λ₯Έ λ§Žμ€ λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μžˆμŠ΅λ‹ˆλ‹€(예: [1], [2] λ“±). 이 λͺ¨λ“  것 μ€‘μ—μ„œ Chosen이 κ°€μž₯ 잘 μž‘λ™ν•˜μ§€λ§Œ 원격 데이터 μ†ŒμŠ€ 지원에 μΆ”κ°€λ˜λŠ” 맀우 큰 μ»¬λ ‰μ…˜μ€ μ§€μ›ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ˜ν•œ Chosen이 이λ₯Ό μ§€μ›ν•œλ‹€λ©΄ 두 κ°œκ°€ μ•„λ‹Œ ν•˜λ‚˜μ˜ ν”ŒλŸ¬κ·ΈμΈμ„ μŠ€ν‚¨ν•˜κ³  μ΅œμ‹  μƒνƒœλ‘œ μœ μ§€ν•΄μ•Ό ν•©λ‹ˆλ‹€.

[1] http://loopj.com/jquery-tokeninput/
[2] http://wharsojo.wordpress.com/2008/02/18/jquery-facebook-autocomplete/

κΈ€μŽ„, λ§Œμ•½ λ‹Ήμ‹ μ˜ SELECT μ•„μ΄ν…œμ— 300,000개의 μ•„μ΄ν…œμ΄ μžˆλ‹€λ©΄, (IMHO) 당신은 λ­”κ°€ 잘λͺ»ν•˜κ³  μžˆλŠ” κ²ƒμž…λ‹ˆλ‹€β€¦ 더 λ‚˜μ€ λ°©μ‹μœΌλ‘œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ²˜λ¦¬ν•  수 μžˆλŠ” λ§Žμ€ μ˜΅μ…˜μ΄ μžˆμŠ΅λ‹ˆλ‹€.

Chosen은 ν•  수 μžˆλŠ” 일을 ν•  수 μžˆμŠ΅λ‹ˆλ‹€... swish ꡰ용 칼처럼 λ§Žμ€ 일(원격 데이터 μ†ŒμŠ€, ν•­λͺ©μ— λŒ€ν•œ 이미지 μ—°κ²°, μ‚¬μš©μž 지정 필터링, AJAX 쿼리 λ“±)을 μˆ˜ν–‰ν•  수 있으며 ν•˜λ‚˜λ§Œμ„ μœ„ν•œ μ™„λ²½ν•œ 도ꡬ가 될 수 μ—†μŠ΅λ‹ˆλ‹€(κΈ°μ‘΄ SELECT 에 λŒ€ν•œ 더 λ‚˜μ€ μΈν„°νŽ˜μ΄μŠ€

El 10/08/2011, a las 22:56, ivaynberg escribiΓ³:

@juanghurtado : 300K ν•­λͺ©μ΄ ν¬ν•¨λœ 닀쀑 선택 μƒμžκ°€ μžˆλŠ” 경우 HTML에 μ™„μ „νžˆ μ“Έ 수 μ—†μŠ΅λ‹ˆλ‹€. Chosen은 검색 및 선택을 μœ„ν•œ μ™„λ²½ν•œ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€. 이 κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” λ‹€λ₯Έ λ§Žμ€ λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μžˆμŠ΅λ‹ˆλ‹€(예: [1], [2] λ“±). 이 λͺ¨λ“  것 μ€‘μ—μ„œ Chosen이 κ°€μž₯ 잘 μž‘λ™ν•˜μ§€λ§Œ 원격 데이터 μ†ŒμŠ€ 지원에 μΆ”κ°€λ˜λŠ” 맀우 큰 μ»¬λ ‰μ…˜μ€ μ§€μ›ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ˜ν•œ Chosen이 이λ₯Ό μ§€μ›ν•œλ‹€λ©΄ 두 κ°œκ°€ μ•„λ‹Œ ν•˜λ‚˜μ˜ ν”ŒλŸ¬κ·ΈμΈμ„ μŠ€ν‚¨ν•˜κ³  μ΅œμ‹  μƒνƒœλ‘œ μœ μ§€ν•΄μ•Ό ν•©λ‹ˆλ‹€.

[1] http://loopj.com/jquery-tokeninput/
[2] http://wharsojo.wordpress.com/2008/02/18/jquery-facebook-autocomplete/

이 이메일에 직접 λ‹΅μž₯ν•˜κ±°λ‚˜ GitHubμ—μ„œ ν™•μΈν•˜μ„Έμš”.
https://github.com/harvesthq/chosen/issues/79#issuecomment -1776643

정말 그것에 λŒ€ν•΄ λ…ΌμŸ ν•  수 μ—†μŠ΅λ‹ˆλ‹€ ...

jquery μžλ™ μ™„μ„± ν”ŒλŸ¬κ·ΈμΈκ³Ό 같이 μ„ νƒν•œ ν•­λͺ©μ—μ„œ 검색할 λ•Œ 원격 데이터λ₯Ό κ°€μ Έμ˜€κ³  μ‹ΆμŠ΅λ‹ˆλ‹€. pls help me

+1 원격 데이터λ₯Ό μ§€μ›ν•©λ‹ˆλ‹€.

UIλŠ” ν›Œλ₯­ν•˜μ§€λ§Œ 원격 데이터λ₯Ό μ§€μ›ν•˜μ§€ μ•ŠλŠ” 것과 같은 λͺ‡ 가지 λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” 이것이 κ°€λŠ₯ν•˜λ‹€κ³  μƒκ°ν•˜μ§€λ§Œ μƒκ°λ§ŒνΌ μ‰½μ§€λŠ” μ•Šλ‹€. 이것은 github이고 μ˜€ν”ˆ μ†ŒμŠ€μ΄λ―€λ‘œ 일뢀 μ½”λ“œλ₯Ό μ‚΄νŽ΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

@juanghurtado λ˜ν•œ κΈ°μ‘΄ κΈ°λŠ₯을 뢀풀리지 μ•Šκ³  이 μž‘μ—…μ„ μˆ˜ν–‰ν•  수 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. jquery와 ν”„λ‘œν† νƒ€μž… λͺ¨λ‘ 원격 데이터 μ†ŒμŠ€μ— ν•„μš”ν•œ λͺ¨λ“  것을 μ œκ³΅ν•©λ‹ˆλ‹€.

results_search()λŠ” ν‚€λ₯Ό λˆ„λ₯΄λŠ” λ™μ•ˆ νŠΈλ¦¬κ±°λ˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. μ—¬κΈ°μ—μ„œ μ„ νƒν•œ κΈ°λ³Έ λ™μž‘μ„ μž¬μ •μ˜ν•©λ‹ˆλ‹€. μ’€ 더 깊이 νŒŒκ³ λ“€ ν•„μš”κ°€ μžˆμ§€λ§Œ winnow_results()λ₯Ό λͺ¨λ°©ν•˜κ³  λ‘œλ”© λ™μž‘μ„ ν‘œμ‹œν•˜λŠ” 방법(예: winnow_loading_results())을 μΆ”κ°€ν•  수 μžˆλ‹€λ©΄ 잘 μž‘λ™ν•  것 κ°™μŠ΅λ‹ˆλ‹€.

μ‚΄νŽ΄λ³Ό 또 λ‹€λ₯Έ ν•¨μˆ˜λŠ” winnow_results_clear()μž…λ‹ˆλ‹€.

μ–΄λ €μš΄ 뢀뢄은 이것을 Chosen에 μ›ν™œν•˜κ²Œ ν†΅ν•©ν•˜λŠ” 방법을 μ•Œμ•„λ‚΄λŠ” κ²ƒμž…λ‹ˆλ‹€. μ˜΅μ…˜μ— μžˆμ–΄μ•Ό ν•˜λ‚˜μš”? κ·Έλƒ₯ μ„œλΈŒν΄λž˜μŠ€λΌκ³  ν•΄μ•Ό ν• κΉŒμš”? 그리고 이것이 핡심 κ°œλ°œμžκ°€ λ§ˆμŠ€ν„° ν”„λ‘œμ νŠΈμ— ν—ˆμš©ν•˜λŠ” κ²ƒμž…λ‹ˆκΉŒ?

μ‹€μ œλ‘œ - μš°λ¦¬λŠ” 이 문제λ₯Ό λ‹«μ•„μ•Ό ν•©λ‹ˆλ‹€. #162에 λŒ€ν•΄ λ§Žμ€ μž‘μ—…μ΄ μˆ˜ν–‰λ˜κ³  있으며 μ΄λŠ” μš°λ¦¬κ°€ μ›ν•˜λŠ” λͺ¨λ“  κ²ƒμž…λ‹ˆλ‹€.

이 μ‹œλŒ€μ— 이 κΈ°λŠ₯은 ν•„μˆ˜μ΄λ©° 곧 κ΅¬ν˜„λ˜κΈ°λ₯Ό μ§„μ‹¬μœΌλ‘œ λ°”λžλ‹ˆλ‹€. λ‹€λ₯Έ λͺ¨λ“  λ©΄μ—μ„œ μ„ νƒλœ 것은 μ™„λ²½ν•©λ‹ˆλ‹€. :)

원격 데이터 μ†ŒμŠ€μ—μ„œ κ°€μ Έμ˜€λŠ” λ¬Έμ œλŠ” μ–΄λ–»κ²Œ λ˜μ—ˆμŠ΅λ‹ˆκΉŒ?

@pfiller κ°€ λŒ€ν™”μ— μ°Έμ—¬ν•  μ‹œκ°„μž…λ‹ˆλ‹€.

+1 이거 보고싢닀

νŽ˜μ΄μ§€κ°€ 제곡될 λ•Œ ν•œ λ²ˆμ— 원격 값을 λ‘œλ“œν•˜λ―€λ‘œ μƒˆ 데이터λ₯Ό μ—…λ°μ΄νŠΈν•˜κ±°λ‚˜ κ°€μ Έμ˜¬ 수 μ—†λŠ” 경우 선택 ν•­λͺ©μ— μ΅œμ†Œν•œ μƒˆ μ˜΅μ…˜μ„ μΆ”κ°€ν•  수 있으면 νŽ˜μ΄μ§€κ°€ μƒˆλ‘œ 고쳐질 λ•ŒκΉŒμ§€ ν΄λΌμ΄μ–ΈνŠΈ 츑을 μœ μ§€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ 원격 κ°€μ Έμ˜€κΈ°μ— +1 및/λ˜λŠ” μƒˆ μ˜΅μ…˜μ„ μΆ”κ°€ν•˜λŠ” κΈ°λŠ₯에 +1. 이것이 μ˜λ―Έκ°€ 있기λ₯Ό λ°”λžλ‹ˆλ‹€...

잘둜카 μš”μ²­ +1

17500개의 λ ˆμ½”λ“œκ°€ μžˆλŠ” ν…Œμ΄λΈ”μ΄ μžˆλŠ”λ° νŽ˜μ΄μ§€λ₯Ό λ‘œλ“œν•  λ•Œ 속도가 λŠλ €μ§€κ³  κ²°κ΅­ 좩돌이 λ°œμƒν•©λ‹ˆλ‹€... ν…Œμ΄λΈ”μ—μ„œ μΌμΉ˜ν•˜λŠ” ν•­λͺ©μ„ κ²€μƒ‰ν•˜λŠ” 방법이 κ΅¬ν˜„λ  수 μžˆλ‹€λ©΄ κ°€μž₯ 쒋을 것이라고 μƒκ°ν•©λ‹ˆλ‹€.

λˆ„κ΅°κ°€κ°€ κ΅¬ν˜„ν–ˆμŠ΅λ‹ˆλ‹€: https://github.com/meltingice/ajax-chosen

μ €λŠ” jQuery μ „λ¬Έκ°€κ°€ μ•„λ‹ˆλ©° μ‹€μ œλ‘œ 그것에 λŒ€ν•΄ μ•„λŠ” 것이 μ—†μŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‹ˆ μ œκ°€ λ¬΄μ‹ν•˜κ²Œ μ„€λͺ…ν•˜λŠ” 것을 μš©μ„œν•΄ μ£Όμ‹­μ‹œμ˜€. λ‚΄ 문제λ₯Ό μ„€λͺ…ν•  μ μ ˆν•œ 단어λ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€. λ‚˜λŠ” κ·Έ κ°„λ‹¨ν•œ μ§€μ‹œλ₯Ό λ”°λžλ‹€: 클래슀λ₯Ό μΆ”κ°€ν•˜κ³ , 슀크립트λ₯Ό λ„£κ³ , ν•¨μˆ˜λ₯Ό ν˜ΈμΆœν–ˆλ‹€. 선택 μž…λ ₯이 μ—†λŠ” νŽ˜μ΄μ§€λ₯Ό μ œμ™Έν•˜κ³  λͺ¨λ“  것이 ν›Œλ₯­ν•˜κ²Œ μž‘λ™ν–ˆμŠ΅λ‹ˆλ‹€. 그리고 데이터가 Ajax의 λ„μ›€μœΌλ‘œ μ§„ν–‰λ˜λŠ”μ§€ ν™•μ‹ ν•  수 μ—†μŠ΅λ‹ˆλ‹€. λ‚΄κ°€ κ°€μ •ν•  수 μžˆλŠ” 것은 양식이 MySQL λ°μ΄ν„°λ² μ΄μŠ€μ˜ ν…Œμ΄λΈ”μ—μ„œ μƒμ„±λœλ‹€λŠ” κ²ƒλΏμž…λ‹ˆλ‹€. μž…λ ₯ μ˜΅μ…˜μ„ μ„ νƒν•˜μ‹­μ‹œμ˜€. 적어도 λ‚΄κ°€ νŽ˜μ΄μ§€λ₯Ό νŽΈμ§‘ν–ˆμ„ λ•Œμ²˜λŸΌ λ³΄μ˜€λ‹€. λ”°λΌμ„œ νŽ˜μ΄μ§€λ₯Ό λ‘œλ“œν•  λ•Œ 선택 μž…λ ₯에 'chzn-select' 클래슀만 ν‘œμ‹œλ˜λ©° μ΄λŠ” μŠ€ν¬λ¦½νŠΈκ°€ μ „ν˜€ μž‘λ™ν•˜μ§€ μ•ŠμŒμ„ μ˜λ―Έν•©λ‹ˆλ‹€. κ΄€λ ¨ 문제λ₯Ό μ½μ–΄λ³΄λ‹ˆ 원격 데이터 μ†ŒμŠ€ λ•Œλ¬ΈμΈμ€„ μ•Œμ•—λŠ”λ° ν•΄κ²° 방법을 λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€. 사싀 μ—¬κΈ°μ„œ 무슨 말을 ν•˜λŠ”μ§€ 잘 이해가 λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” μ„±κ³΅ν•˜μ§€ μ•Šκ³  μœ„μ—μ„œ 제곡된 Ajax-chosen을 μ‹œλ„ν–ˆκ³  여기에 μ–ΈκΈ‰λœ λ‹€λ₯Έ 'ν•΄ν‚Ή'을 μ‹œλ„ν–ˆμŠ΅λ‹ˆλ‹€. λˆ„κ΅°κ°€κ°€ κ°„λ‹¨ν•œ λ‹¨μ–΄λ‘œ μ„€λͺ… ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? λ‚΄ κ²½μš°μ— 무언가λ₯Ό ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

Mac OS와 Windowsμ—μ„œ λͺ¨λ‘ μ‹œλ„ν•œ jQuery 1.4.2λ₯Ό μ‚¬μš©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ—¬κΈ°μ—μ„œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€: http://94.125.8.168/eng/ (ν”ŒλΌμ΄νŠΈ μ •λ³΄λΌλŠ” 쀑앙 λΈ”λ‘μ—μ„œ 검색 λ˜λŠ” μ‹œκ°„ν‘œ 탭을 ν΄λ¦­ν•˜μ‹­μ‹œμ˜€). λͺ©μ μ§€, ν•­κ³΅νŽΈ 번호 및 곡항을 선택해야 ν•©λ‹ˆλ‹€.

@ffiona μ„ νƒν•œ ν˜ΈμΆœμ„ jQuery μ€€λΉ„ ν•¨μˆ˜ 둜 λž˜ν•‘ν•΄μ•Ό ν•©λ‹ˆλ‹€.

$(document).ready(function() {
  $(".chzn-select").chosen();
});

μŠ€λ ˆλ“œμ— λŒ€ν•œ μ£Όμ œμ— λŒ€ν•œ ν–₯ν›„ μ§ˆλ¬Έμ„ μœ μ§€ν•˜μ‹­μ‹œμ˜€. 질문이 μžˆλŠ” 경우 μƒˆ 문제λ₯Ό μ—¬λŠ” 것을 ν™˜μ˜ν•©λ‹ˆλ‹€.

@pfiller λŠ” μ—¬λŸ¬λΆ„μ΄ μž‘μ—… μ€‘μ΄κ±°λ‚˜ μž‘μ—…ν•  κΈ°λŠ₯μž…λ‹ˆκΉŒ? λ‚˜λŠ” λ‹€λ₯Έ λͺ¨λ“  μ•„μ•½μŠ€ 선택 해킹을 μ‹œλ„ν–ˆμ§€λ§Œ κ·Έλ“€ 쀑 λˆ„κ΅¬λ„ μ‹€μ œλ‘œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ‚¬μš©μžκ°€ 주식 기호λ₯Ό μž…λ ₯ν•˜λŠ” 증ꢌ κ±°λž˜μ†Œ μ•±μ—μ„œ μž‘μ—…ν•˜κ³  있기 λ•Œλ¬Έμ— 이것이 정말 ν•„μš”ν•©λ‹ˆλ‹€.

@all μ„ νƒλœ κ²ƒμ—μ„œ ajax μžλ™ 완성을 μ–»κΈ° μœ„ν•œ λ‚˜μ˜ μ˜΅μ…˜μ€ λ¨Ό 길일 것이며 λŒ€μ•ˆμ„ μ°Ύμ•„μ•Ό ν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. λˆ„κ΅¬λ“ μ§€ 이 κΈ°λŠ₯을 μ‚¬μš©ν•˜μ—¬ μ„ νƒν•œ λ‹€λ₯Έ λŒ€μ•ˆμ„ μΆ”μ²œν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

저도 μ΅œκ·Όμ— ν•˜λ‚˜ λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.. https://github.com/ksykulev/chosen-ajax-addition

@ksykulev ν˜Ήμ‹œ 이것에 λŒ€ν•œ 라이브 데λͺ¨κ°€ μ–΄λ”˜κ°€μ— μžˆμŠ΅λ‹ˆκΉŒ?

@jaquery
http://sykulev.com/ajaxchosen/index.html 예제λ₯Ό λΉ λ₯΄κ²Œ ν•΄ν‚Ήν–ˆμŠ΅λ‹ˆλ‹€.

λ‚΄ μ €μž₯μ†Œμ˜ /example μ•„λž˜μ— μ½”λ“œλ₯Ό μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€.

@ksykulev : κ·€ν•˜μ˜ 버전은 단일 μ„ νƒμœΌλ‘œ 정말 ν›Œλ₯­ν•œ μž‘μ—…μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€. κ°μ‚¬ν•©λ‹ˆλ‹€! Btw 닀쀑 μ„ νƒμ—μ„œλŠ” μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ‹œκ°„λ‚˜λ©΄ 이거 ν•œλ²ˆ λ΄μ•Όκ² λ„€μš”.

@meltingice 버전은 닀쀑 μ„ νƒμ—μ„œλ„ 정말 μ΄μƒν•œ 일을 ν•©λ‹ˆλ‹€. Chosen ν•¨μˆ˜λ₯Ό μ „ν˜€ μ‚¬μš©ν•˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ΄λΌκ³  μƒκ°ν•©λ‹ˆλ‹€. κ²°κ³Όκ°€ ν΄λΌμ΄μ–ΈνŠΈλ‘œ λ‹€μ‹œ μ „μ†‘λœ ν›„ 크기 μ‘°μ •).

@jbbarth : λ„€ λ§žμŠ΅λ‹ˆλ‹€. 닀쀑 μ„ νƒμœΌλ‘œ ν…ŒμŠ€νŠΈν•˜μ§€ μ•Šμ•˜κΈ° λ•Œλ¬Έμ— 잘 μž‘λ™ν•˜μ§€ μ•ŠλŠ”λ‹€κ³  상상할 수 μžˆμ„ λΏμž…λ‹ˆλ‹€. λ‚΄ 라이브러리의 완성도 μΈ‘λ©΄μ—μ„œ μ΄λŸ¬ν•œ 지원을 ν™•μ‹€νžˆ μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 그것을 얻을 것이닀. 감사 ν•΄μš”!

λ‚˜λŠ” Chosen을 기반으둜 ν•œ λͺ¨μ–‘κ³Ό λŠλ‚ŒμœΌλ‘œ λ‚΄ μžμ‹ μ˜ 버전을 λ‘€λ§ν–ˆμŠ΅λ‹ˆλ‹€.

https://github.com/ivayberg/select2

ajax/jsonp 원격 데이터 μ„ΈνŠΈ 및 λ¬΄ν•œ 슀크둀(νŽ˜μ΄μ§•λœ 원격 데이터 μ„ΈνŠΈμ˜ 지연 λ‘œλ“œ)을 μ§€μ›ν•©λ‹ˆλ‹€. 아직 닀쀑 선택을 μ§€μ›ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

@ivaynberg μ €λŠ” 이것에 μ£Όλͺ©ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

Chosen(특히 νƒœκ·Έμ™€ 같은 닀쀑 선택 지원)으둜 κΈ°λŠ₯ νŒ¨λŸ¬λ””μ— λ„λ‹¬ν•˜λ©΄ 이 μŠ€λ ˆλ“œλ₯Ό ν™•μ‹€νžˆ λΆ€λ”ͺν˜€μ•Ό ν•©λ‹ˆλ‹€.

λ‚˜λŠ” Chosen의 λͺ¨μ–‘κ³Ό λŠλ‚Œμ„ μ’‹μ•„ν•˜μ§€λ§Œ μ‹€μ œλ‘œ κ΅¬ν˜„μ— ν•„μš”ν•œ 것듀을 λ‚¨κ²¨λ‘‘λ‹ˆλ‹€.

μ•„μ£Ό, μ•„μ£Ό 쒋은 μž‘ν’ˆμž…λ‹ˆλ‹€!

@ivaynberg λ“œλ‘­ λ‹€μš΄ 및 검색 μž…λ ₯ λ„ˆλΉ„λ₯Ό ꡬ체적으둜 κ³„μ‚°ν•˜λŠ” μ½”λ“œκ°€ μ—¬μ „νžˆ μ„ νƒλ˜μ–΄ μžˆμŒμ„ μ•Œμ•˜μŠ΅λ‹ˆλ‹€.

이것을 ν™•μΈν•˜κ³  싢을 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€ : https://github.com/harvesthq/chosen/pull/407

μ΅œκ·Όμ— 닀쀑 선택을 μ§€μ›ν•˜λ„λ‘ μ„ νƒν•œ Ajax 버전을 μ—…λ°μ΄νŠΈν–ˆμŠ΅λ‹ˆλ‹€. http://sykulev.com/ajaxchosen/index.html

@justindujardin Select2 λ§ˆμŠ€ν„°μ—λŠ” 이제 κΈ°λŠ₯ νŒ¨λ¦¬ν‹°κ°€ μžˆμŠ΅λ‹ˆλ‹€. 407μ—μ„œ 크기 쑰정에 λŒ€ν•΄ μ‚΄νŽ΄λ³΄κ² μ§€λ§Œ Select2의 ν”„λ‘œμ νŠΈμ— λŒ€ν•΄ 더 λ§Žμ€ λ…Όμ˜λ₯Ό ν•΄μ•Ό ν•©λ‹ˆλ‹€.

λ‚˜λŠ” Select2 λ₯Ό 정말 μ’‹μ•„ν•˜κ³  λͺ¨λ“  μ‚¬λžŒμ΄ Select2둜 μ „ν™˜ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. ν—€.

@ProLoser – κ°μ‚¬ν•©λ‹ˆλ‹€... μ •ν™•νžˆ μ œκ°€ 찾던 κ²ƒμž…λ‹ˆλ‹€. 훨씬 더 λ‚˜μ€ μ˜΅μ…˜μœΌλ‘œ λ³΄μž…λ‹ˆλ‹€.

μ…€λ ‰νŠΈ2 FTW!

Select2λŠ” 갈 κΈΈμž…λ‹ˆλ‹€!

λͺ‡ 년이 μ§€λ‚œ ν›„ μ—…λ°μ΄νŠΈκ°€ μžˆμŠ΅λ‹ˆκΉŒ?

μ™œ 그런 μž„ν”„ κΈ°λŠ₯이 λˆ„λ½ λ˜μ—ˆμŠ΅λ‹ˆκΉŒ?

흠... λƒ„μƒˆκ°€ λ‚˜λ„€μš”. ν…μŠ€νŠΈ κ°•μ‘° ν‘œμ‹œ λ•Œλ¬Έμ— Chosen을 κ΅¬ν˜„ν•˜κΈ°λ‘œ κ²°μ •ν–ˆμ§€λ§Œ AJAXλ₯Ό μΆ”κ°€ν•˜κΈ°κ°€ κ·Έλ ‡κ²Œ μ–΄λ €μšΈ 쀄은 λͺ°λžμŠ΅λ‹ˆλ‹€. λͺ¨λ“  μ‚¬λžŒμ΄ μš”κ΅¬ 사항을 μΆ©μ‘±ν•˜κΈ° μœ„ν•΄ μ—¬κΈ°μ—μ„œ κ±΄λ„ˆλ›°κ³  μžˆλ‹€λ©΄ select2둜 κ°”μ–΄μ•Ό ν–ˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. :(

ν›Œλ₯­ν•œ κΈ°λŠ₯μž…λ‹ˆλ‹€. λ§Žμ€ 포크가 이 κΈ°λŠ₯을 μ œμ•ˆν•˜μ§€λ§Œ κ΅¬ν˜„μ€ μ’…μ’… ν˜Όλž€μŠ€λŸ½μŠ΅λ‹ˆλ‹€. :+1:

λ‚˜λŠ” μ‰¬μš΄ μ›μˆ­μ΄ 패치 μ†”λ£¨μ…˜μ„ 생각해 λƒˆμŠ΅λ‹ˆλ‹€.

AbstractChosen.prototype.winnow_results = (function(winnow_results) {
  return function() {
    if (this.options.source) {
      return this.options.source.call(this.form_field, this.search_field.val(), (function(_this) {
        return function(results) {
          var id, option, select;
          if (results) {
            select = document.createElement('select');
            select.appendChild(document.createElement('option'));
            for (id in results) {
              if (results.hasOwnProperty(id)) {
                option = document.createElement('option');
                option.value = id;
                option.textContent = results[id];
                select.appendChild(option);
              }
            }
            _this.results_data = SelectParser.select_to_array(select);
          }
          return winnow_results.call(_this);
        };
      })(this));
    } else {
      return winnow_results.call(this);
    }
  };
})(AbstractChosen.prototype.winnow_results);

κ²°κ³Ό λ Œλ”λ§ μ‹œ 호좜될 'μ†ŒμŠ€' κΈ°λŠ₯ μ˜΅μ…˜μ„ 선택할 수 μžˆμŠ΅λ‹ˆλ‹€. λ¬Έμžμ—΄ μž…λ ₯ κ°’κ³Ό 콜백 ν•¨μˆ˜ μΈμˆ˜κ°€ μžˆμŠ΅λ‹ˆλ‹€. 콜백 ν•¨μˆ˜λŠ” μ œμ•ˆμ„ λ Œλ”λ§ν•©λ‹ˆλ‹€. κ²°κ³Όκ°€ λ³€κ²½λ˜μ§€ μ•Šμ•„μ•Ό ν•˜λŠ” 경우 인수 없이 μ¦‰μ‹œ ν˜ΈμΆœν•΄μ•Ό ν•©λ‹ˆλ‹€. 그렇지 μ•ŠμœΌλ©΄ κ²°κ³Όλ₯Ό μš”μ²­ν•˜κ³  κ²°κ³Όλ₯Ό μ–»μ—ˆμ„ λ•Œ 콜백으둜 보낼 수 μžˆμŠ΅λ‹ˆλ‹€. κ²°κ³Ό 개체의 ν˜•μ‹μ€ { value: "label", value2: "label2" } μž…λ‹ˆλ‹€. λ‹€μŒμ€ μ˜ˆμž…λ‹ˆλ‹€.

var select = $("#select"),
    value;
select.chosen({
    source: function (val, callback) {
        if (value != val) {
            value = val;
            $.get('/suggestions', { value: value }, callback);
        } else
            callback();
    }
});

@faucct κ°€ μ œμ•ˆν•œ 것이 νš¨κ³Όκ°€ μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. μ‚¬μ†Œν•œ μ°Έκ³  사항은 jquery 버전을 μ‚¬μš©ν•˜λŠ” 경우 μ„ νƒν•œ λ²”μœ„ μ™ΈλΆ€μ—μ„œ AbstractChosen에 μ•‘μ„ΈμŠ€ν•  수 μ—†μœΌλ―€λ‘œ ν•΄λ‹Ή νŒŒμΌμ„ μ„ νƒν•œ λ²”μœ„ 내뢀에 μΆ”κ°€ν•˜κ±°λ‚˜ μ„ νƒν•œ js νŒŒμΌμ„ μˆ˜μ •ν•΄μ•Ό ν•œλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. AbstractChosen 및 SelectParserλ₯Ό μ „μ—­ λ²”μœ„λ‘œ μ΄λ™ν•©λ‹ˆλ‹€. 또 λ‹€λ₯Έ λ¬Έμ œλŠ” μ—΄λ¦° λͺ©λ‘(μ„ νƒν•œ divκ°€ 생성함)을 μ—…λ°μ΄νŠΈν•˜μ§€λ§Œ μ‹€μ œ "선택 ν•„λ“œ"λŠ” μ—…λ°μ΄νŠΈν•˜μ§€ μ•ŠμœΌλ―€λ‘œ 선택 ν•­λͺ©μ— μ—†λŠ” 경우 μ„ νƒν•œ μ˜΅μ…˜μ΄ 였λ₯˜λ₯Ό 던질 수 μžˆλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. λ˜ν•œ μ£Όμ˜ν•  점은 μž‘μ„±ν•œ λ¬Έμžμ—΄μ΄ λ°˜ν™˜λœ 결과도 ν•„ν„°λ§ν•˜λŠ” 데 μ‚¬μš©λœλ‹€λŠ” κ²ƒμž…λ‹ˆλ‹€. λ˜ν•œ 무언가λ₯Ό μž…λ ₯ν•  λ•Œλ§ˆλ‹€ μž‘λ™ν•˜λ―€λ‘œ μ „ν™”λ₯Ό 걸지 μ•Šλ„λ‘ μˆ˜λ™μœΌλ‘œ μ œμ–΄ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

λ‹€λ₯Έ ν™•μž₯ ν”„λ‘œκ·Έλž¨μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. https://github.com/meltingice/ajax-chosen

그것은 κ½€ 잘 μž‘λ™ν•˜μ§€λ§Œ ν˜„μž¬ 버전이 μ†μƒλ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ•½κ°„μ˜ μˆ˜μ •μ΄ μžˆμŠ΅λ‹ˆλ‹€. μ„ νƒν•œ λΌμ΄λΈŒλŸ¬λ¦¬κ°€ λ‚΄λΆ€ CSS 이름을 λ³€κ²½ν–ˆκΈ° λ•Œλ¬Έμ— "chzn"을 "chosen"으둜 λ°”κΏ”μ•Ό ν•©λ‹ˆλ‹€. λ§ˆμ§€λ§‰μœΌλ‘œ λ³€κ²½ν•΄μ•Ό ν•  것은 " listz:updated " λŒ€μ‹  " selected:updated "λ₯Ό νŠΈλ¦¬κ±°ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. Readmeμ—μ„œ CSS의 버그λ₯Ό μˆ˜μ •ν•˜λΌκ³  μš”μ²­ν•˜μ§€λ§Œ μ΅œμ‹  λ²„μ „μ—μ„œλŠ” 이미 μˆ˜μ •λ˜μ—ˆμœΌλ―€λ‘œ κ·Έλ ‡κ²Œ ν•  ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€. λ˜ν•œ λͺ‡ 가지 μœ μš©ν•œ μ˜΅μ…˜μ„ μ„€μ •ν•  수 있으며 μ‚¬μš©μžκ°€ 계속 μž‘μ„±ν•˜λ©΄ μ‹œμŠ€ν…œμ€ 보λ₯˜ 쀑인 ν˜ΈμΆœλ„ μ·¨μ†Œν•©λ‹ˆλ‹€.

이것은 λ‚΄ μ—¬ν–‰μ΄μ—ˆμŠ΅λ‹ˆλ‹€ :) λ„μ›€μ΄λ˜κΈ°λ₯Ό λ°”λžλ‹ˆλ‹€.

μ„ νƒν•œ 원격 데이터 μ†ŒμŠ€λ₯Ό μ²˜λ¦¬ν•˜λŠ” ν”ŒλŸ¬κ·ΈμΈμ„ λ§Œλ“€μ–΄ 이 문제λ₯Ό ν•΄κ²°ν–ˆμŠ΅λ‹ˆλ‹€. λͺ¨λ‘ μ¦κΈ°μ‹œκΈ° λ°”λžλ‹ˆλ‹€.

selected-remote-source (https://github.com/westonganger/chosen-remote-source)

전체 μ½”λ“œλŠ” 200쀄 미만의 μ½”λ“œλ‘œ μƒλ‹Ήνžˆ κ°„λ‹¨ν•©λ‹ˆλ‹€.
https://github.com/westonganger/chosen-remote-source/blob/master/src/chosen-remote-source.js

Chosenμ—μ„œ νŒ¨μΉ˜κ°€ ν•„μš”ν•œ μœ μΌν•œ 뢀뢄은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

// MONKEY PATCH CHOSEN TO NOT CLEAR THE SELECTED RESULTS UPON SEARCHING WITH
chosen_prototype.show_search_field_default = function() {
  if (this.is_multiple && this.choices_count() < 1 && !this.active_field) {
    this.search_field.val(this.default_text);
    return this.search_field.addClass("default");
  } else {
    if(this.default_text === this.search_field.val()){
      this.search_field.val(""); // ORIGINAL LINE, SURROUNDING IF STATEMENT IS CUSTOM
    }

    return this.search_field.removeClass("default");
  }
};
// END CHOSEN PATCH
이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰