0

I've faced a quite annoying problem with accesible-autocomlete and can't really find any valid solution for me. What I'm trying to achieve is to show nice autocomplete in overlay just like in any of the examples here: https://alphagov.github.io/accessible-autocomplete/examples/ But my app still prints autocomplete like this: enter image description here My imports:

import { h, Component } from 'preact';
import linkState from 'linkstate';
import axios from 'axios';
import Autocomplete from 'accessible-autocomplete/preact';

My preact component render() method returns this:

<form onSubmit={e => this.submitHandler(e)}>
    <div class="form-row mt-2">
        <div class="col-6 mb-2">
            <div class="input-group">
                <div class="input-group-prepend">
                    <span class="input-group-text bg-secondary">From</span>
                </div>
                <input type="date" class="form-control" onInput={linkState(this, 'fromDate')} value={state.fromDate} />
                <input type="time" class="form-control" onInput={linkState(this, 'fromTime')} value={state.fromTime} />
            </div>
        </div>
        <div class="col-6 mb-2">
            <div class="input-group">
                <div class="input-group-prepend">
                    <span class="input-group-text bg-secondary">To</span>
                </div>
                <input type="date" class="form-control" onInput={linkState(this, 'toDate')} value={state.toDate} />
                <input type="time" class="form-control" onInput={linkState(this, 'toTime')} value={state.toTime} />
            </div>
        </div>
    </div>
    <div class="form-row mt-2">
        <div class="col-4">
            <div class="form-check">
                <input id="errors-only" type="checkbox" class="form-check-input" onChange={linkState(this, 'errorsOnly')} value={state.errorsOnly} />
                <label for="errors-only" class="form-check-label">Errors only</label>
            </div>
        </div>
        <div class="col-8">
            <div class="input-group">
                <div class="input-group-prepend">
                    <select class="custom-select" onChange={linkState(this, 'supplementalKey')}>
                        <option></option>
                        <option value="acronym">Acronym</option>
                        <option value="document-id">Document number</option>
                        <option value="nip">NIP</option>
                    </select>
                </div>
                <div id="auto-container" role="combobox" aria-expanded="false">
                    <Autocomplete displayMenu='overlay'
                        id='autocomplete'
                        source={this.loadAutocomplete.bind(this)}/>
                </div>
            </div>
        </div>
    </div>
    <div class="form-row">
        <div class="col-12 mb-2">
            <div class="input-group">
                <button type="submit" class="btn btn-secondary">Search</button>
            </div>
        </div>
    </div>
</form>

And autocomplete component call like this

<Autocomplete displayMenu='overlay'
    id='autocomplete'
    source={this.loadAutocomplete.bind(this)}/>

What I've already tried is adding another option element={document.querySelector('#auto-container')} What I wanted to try, but don't exactly know how to fit it in, is code written just like in the example in documentation: enter image description here I've also tried to move it into other simpler component and out of component altogether but to no avail. Is there something I'm missing? Why my <Autocomplete ... /> is not displaying in overlay mode?

4

1 回答 1

0

您应该添加默认样式accessible-autocomplete

样式化自动完成

包中包含一个样式表,位于dist/accessible-autocomplete.min.css

您可以将其复制到样式表文件夹并将其导入浏览器:

<link rel="stylesheet" href="assets/css/accessible-autocomplete.min.css" />

你也可以使用 Sass 导入它:

@import "accessible-autocomplete";
于 2018-05-18T09:46:00.437 回答