Chosen: ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ๋กœ ์„ ํƒํ•œ ๊ฐ’ ์„ค์ •

์— ๋งŒ๋“  2011๋…„ 07์›” 21์ผ  ยท  25์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: harvesthq/chosen

javascript๋กœ ์„ ํƒํ•œ ๊ฐ’์„ ์„ค์ •ํ•˜๋ฉด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. selected()๊ฐ€ <li> ์— single_examplechzn_o_0 ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํด๋ž˜์Šค๋Š” ์˜ต์…˜ ๊ฐ’๊ณผ ๊ณตํ†ต์ ์ด ์—†์œผ๋ฉฐ #single_example์€ selected() ์ดํ›„์— ๋” ์ด์ƒ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ด๊ฒƒ์€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค:
```


$(#๋‹จ์ผ_์˜ˆ์‹œ").val(2);

``````

์ด๊ฒƒ์€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค:
```
``````

$("#single_example").val(2);

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@stof ๋•๋ถ„์— ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ jQuery๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ ์œผ๋กœ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

$("#single_example").val(2).trigger('chosen:updated');

๋ชจ๋“  25 ๋Œ“๊ธ€

๋‚ด ์ง€์ (https://github.com/tompaton/chosen)์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ถˆํ–‰ํžˆ๋„ ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ณ€๊ฒฝ ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜๋™์œผ๋กœ ํŠธ๋ฆฌ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

$("#single_example").val(2).trigger("change");

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!

์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š” ์˜ˆ์ œ๋ฅผ ์ˆ˜ํ–‰ํ–ˆ์ง€๋งŒ $("#single_example").val(2).trigger("change");
, ๋ชฉ๋ก(์„ ํƒํ•œ ๊ฐ’)์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์—†์Šต๋‹ˆ๋‹ค.
ํ”Œ๋Ÿฌ๊ทธ์ธ์˜ ๋งˆ์ง€๋ง‰ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ธ์‚ฌ

https://github.com/tompaton/chosen ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์•„์ง ์ˆ˜์ง‘๋˜์ง€ ์•Š์€ ๋ถ„๊ธฐ์ž…๋‹ˆ๋‹ค.

์˜ˆ, tompaton ๋ถ„๊ธฐ๋ฅผ ์‚ฌ์šฉํ•œ ํ›„ ๋งค๋ ฅ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

$(#๋‹จ์ผ_์˜ˆ1").val(2);
$(#๋‹จ์ผ_์˜ˆ2").val(3)
...
$(#๋‹จ์ผ_์˜ˆ3").val(20);
$('.chosen').trigger('๋ณ€๊ฒฝ');

์•ˆ๋…•ํ•˜์„ธ์š” ์—ฌ๋Ÿฌ๋ถ„, ์ €๋Š” tompaton์˜ ํฌํฌ(https://github.com/tompaton/chosen)๋ฅผ ๋‹ค์šด๋กœ๋“œํ–ˆ์Šต๋‹ˆ๋‹ค.
$(#๋‹จ์ผ_์˜ˆ์‹œ").val(2).trigger("๋ณ€๊ฒฝ");
A ์ด๊ฒƒ์€ ๋งค๋ ฅ์ฒ˜๋Ÿผ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
์กฐ์–ธ์„ ์œ„ํ•ด Thxs :-)

๋ช…ํ™•ํ•œ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ž‘์„ฑํ•˜๋ ค๊ณ ํ•˜๋Š”๋ฐ tompaton ๋ถ„๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
$(".state_list").val("").trigger("๋ณ€๊ฒฝ");

๋นˆ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.
```

Is there a way to totally remove all selections? Also how about selecting all?

์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ œ ํŒจ์น˜๋Š” ๋‹ค์ค‘ ์„ ํƒ ์ƒ์ž๋ฅผ ๋‹ค๋ฃจ์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
์ข€ ๋” ๋งŽ์€ ์ฝ”๋“œ ...

2011๋…„ 8์›” 12์ผ ๊ธˆ์š”์ผ ์˜ค์ „ 1์‹œ 50๋ถ„, MB34
๋‹ต์žฅ@reply.github.com
์ผ๋‹ค:

๋ช…ํ™•ํ•œ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ž‘์„ฑํ•˜๋ ค๊ณ ํ•˜๋Š”๋ฐ tompaton ๋ถ„๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
$(".state_list").val("").trigger("๋ณ€๊ฒฝ");

๋นˆ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ์„ ํƒ์„ ์™„์ „ํžˆ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋˜ํ•œ ๋ชจ๋‘ ์„ ํƒํ•˜๋Š” ๊ฒƒ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ?

์ด ์ด๋ฉ”์ผ์— ์ง์ ‘ ๋‹ต์žฅํ•˜๊ฑฐ๋‚˜ GitHub์—์„œ ํ™•์ธํ•˜์„ธ์š”.
https://github.com/harvesthq/chosen/issues/31#issuecomment -1782941

ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ํŒจ์น˜ํ•˜์ง€ ์•Š๊ณ  ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

์ข‹์•„, ๋‹ค์ค‘ ์„ ํƒ์—์„œ ๋ชจ๋“  ์„ ํƒ์„ ์ง€์šฐ๋Š” ๊ฒƒ์€ ํŒจ์น˜ ์—†์ด๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์„ ํƒํ•œ ๋‚ด๋ถ€๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์— ์Šค์Šค๋กœ๋ฅผ ๊ฐ€๋‘˜ ์˜ํ–ฅ์ด ์žˆ๋‹ค๋ฉด:

// replace {select_id} below with the id of your <select> tag
$('#{select_id}_chzn .chzn-choices .search-choice a').click();

์ด๊ฒƒ์€ ๋‹ค์ค‘ ์„ ํƒ์—์„œ ์„ ํƒํ•œ ๊ฐ ํ•ญ๋ชฉ์—์„œ ์ œ๊ฑฐ "x"๋ฅผ ํด๋ฆญํ•˜๋Š” ๊ฒƒ์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  ์˜ต์…˜์„ ์„ ํƒํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค(๋“œ๋กญ๋‹ค์šด์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์˜ต์…˜์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜์—ฌ):

$('#{select_id}_chzn .chzn-drop li').click();

์ด๋Ÿฌํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์€ ์‹ค์ œ๋กœ ์„ ํƒํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ์— ๋ฉ”์„œ๋“œ๋กœ ์ถ”๊ฐ€๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ข‹์•„, ์ด ๋ชจ๋“  ๊ฒƒ์„ ๋ช…ํ™•ํžˆ ํ•˜๊ธฐ ์œ„ํ•ด:

@pfiller ๋Š” ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ Harvethq/chosen ๋ธŒ๋žœ์น˜์—์„œ ์ด๊ฒƒ์ด ๋ชจ๋‘ ๊ฐ€๋Šฅํ•˜๋‹ค๊ณ  ์ง€์ ํ–ˆ์Šต๋‹ˆ๋‹ค.

$("#single_example").val(2).trigger("liszt:updated");

์ฝ”๋“œ/๋ฌธ์„œ๋ฅผ ์ถฉ๋ถ„ํžˆ ์ฝ์ง€ ์•Š์€ ๊ฒƒ์— ๋Œ€ํ•œ ๋‚˜์˜ ๋‚˜์จ. ์—ฌ๋Ÿฌ ์„ ํƒ ์ƒ์ž์—์„œ๋„ ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์ค‘ ์„ ํƒ์—์„œ ๋ชจ๋“  ์˜ต์…˜์„ ์ง€์šฐ๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•˜์‹ญ์‹œ์˜ค.

$('#{select_id}').val([]).trigger('liszt:updated');

๋‚ด ์ด์ „ ์˜๊ฒฌ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹๋ชจ๋“  ์˜ต์…˜์„ ์„ ํƒํ•˜๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

_์ฐธ๊ณ _ ์ด์™€ ๊ด€๋ จํ•˜์—ฌ ๋‚ด ํฌํฌ๋Š” ์ด์ œharveshq/chosen๊ณผ ๋™์ผํ•˜๋ฏ€๋กœ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  .trigger('change') ํ•ญ๋ชฉ์„ ๋ฌด์‹œํ•˜์‹ญ์‹œ์˜ค.

Prototype ์–ด๋Œ‘ํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์‚ฌ์šฉ์ž๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  $(select_box_id).select('option[selected]').each(function(el){el.selected = false});
  Event.fire($(select_box_id), 'liszt:updated')

๋‹ค์†Œ ํˆฌ๋ฐ•ํ•˜์ง€๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๋ฉด

๋‚ด๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์†”๋ฃจ์…˜์€ ์›๋ณธ ์†Œ์Šค ์„ ํƒ์—์„œ ์„ ํƒํ•œ ์˜ต์…˜์„ ๋ณ€๊ฒฝํ•œ ๋‹ค์Œ Chosen์„ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

select.val(value);
select.chosen('destroy');
select.chosen({});

@roelvanduijnhoven @tompaton ์˜ ์ฃผ์„์— ์ œ๊ณต๋œ ์†”๋ฃจ์…˜(๋˜๋Š” ํ”„๋กœํ† ํƒ€์ž… ๋ฒ„์ „์˜ ๊ฒฝ์šฐ @RyanS ๊ฐ€ ์ œ๊ณตํ•œ)์€ ๊ธฐ์กด ์š”์†Œ๋ฅผ ํŒŒ๊ดดํ•˜๊ณ  ์ƒˆ ์š”์†Œ๋ฅผ ๋งŒ๋“œ๋Š” ๋Œ€์‹  ์—…๋ฐ์ดํŠธํ•˜๋ฏ€๋กœ ๋” ์ข‹์Šต๋‹ˆ๋‹ค.

์–ด๋–ค ์ด์œ ๋กœ @tompaton ์˜ ์†”๋ฃจ์…˜์ด ์ œ ๊ฒฝ์šฐ์—๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜๋„ ๋…ธ๋ ฅ์„ ๋งŽ์ด ํ•˜์ง€ ์•Š์•„์„œ ์ œ๊ฐ€ ๋ญ”๊ฐ€ ์ž˜๋ชปํ•œ ๊ฒƒ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

@roelvanduijnhoven ๋ฒ„์ „ 1.0์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ด๋ฒคํŠธ๋Š” ์ด์ œ chosen:updated ์ž…๋‹ˆ๋‹ค.

@stof ๋•๋ถ„์— ํŠธ๋ฆญ์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ ๋กœ jQuery๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ ์œผ๋กœ ๊ฐ’์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

$("#single_example").val(2).trigger('chosen:updated');

์ฐธ๊ณ ๋กœ http://harvesthq.github.io/chosen/#change -update-events ๋ฌธ์„œํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

@roelvanduijnhoven ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ œ ๋Œ“๊ธ€์€ ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ์œ„ํ•œ ๊ฒƒ์ด๋ฏ€๋กœ ์ง€๊ธˆ ์‚ญ์ œํ–ˆ์Šต๋‹ˆ๋‹ค. (gmail์€ ์ด๋ฉ”์ผ์„ ๊ทธ๋ฃนํ™”ํ–ˆ๊ณ  ๋‚˜๋Š” ๋‹ต์žฅ์œผ๋กœ ๋Œ“๊ธ€์„ ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค)

์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์ด ์Šค๋ ˆ๋“œ๊ฐ€ ๋‚ด ํ•˜๋ฃจ๋ฅผ ๊ตฌํ–ˆ์Šต๋‹ˆ๋‹ค!
๋งˆ์ง€๋ง‰์œผ๋กœ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋‹ค์ค‘ ์„ ํƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. :)

์•ˆ๋…•ํ•˜์„ธ์š”, ์ €๋Š” ์ƒˆ๋กœ์šด jquery์ด๊ณ  ๋ฐฉ๊ธˆ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ฐ’์„ ์„ ํƒ/์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ํ˜ผ๋ž€์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ํ•˜๋ ค๊ณ ํ•˜๋Š” ๊ฒƒ์€ ํŽ˜์ด์ง€๋กœ๋“œ์‹œ ๋™์ ์œผ๋กœ ์˜ต์…˜์„ ์ƒ์„ฑ ํ•œ ๋‹ค์Œ ๊ธฐ๋ณธ๊ฐ’์„ ์„ ํƒํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ํ•ด์š”
๊ตฌ๋ฆฌ

gpdhillion:
์ด๊ฒƒ์„ ์‚ฌ์šฉ
$('.chosen-select').val([1,2,3]).trigger('chosen:updated');

$(#id").val(id_value);
$("#id").chosen('ํŒŒ๊ดด');
$("#id").chosen({});

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰