浏览代码

Preserve selected state when opening box

Caleb Porzio 2 年之前
父节点
当前提交
7842e3bb42
共有 1 个文件被更改,包括 6 次插入0 次删除
  1. 6 0
      packages/ui/src/combobox.js

+ 6 - 0
packages/ui/src/combobox.js

@@ -150,9 +150,15 @@ function handleRoot(el, Alpine) {
                     // See https://github.com/tailwindlabs/headlessui/pull/2153
                     if (input) {
                         let value = input.value
+                        let { selectionStart, selectionEnd, selectionDirection } = input
                         input.value = ''
                         input.dispatchEvent(new Event('change'))
                         input.value = value
+                        if (selectionDirection !== null) {
+                            input.setSelectionRange(selectionStart, selectionEnd, selectionDirection)
+                        } else {
+                            input.setSelectionRange(selectionStart, selectionEnd)
+                        }
                     }
 
                     this.__activateSelectedOrFirst()