We have a number of forms in our mkdocs site which are broken by the search shortcut (s / f).
Search only opens when not focused on a form element.
When typing in a form field (e.g. input / text area) an s or f will open the search.
<form>
<input></input>
<textarea></textarea>
</form>
sausages in the input / text areaPython 2.7.130.16.31.7.4I think the code to fix this would be a change to: https://github.com/squidfunk/mkdocs-material/blob/master/src/assets/javascripts/application.js#L340
Something like this to check if the current focused element is part of a form:
if (document.activeElement.form === undefined) {
if (ev.keyCode === 70 || ev.keyCode === 83) {
query.focus()
ev.preventDefault()
}
}
That seems to work in testing but doesn't pass the 'flow' check and I'm not quite familiar enough with js to quickly make this work.
That's indeed a bug, thanks for reporting and the potential fix!
Fixed in #407, will be released shortly with 1.7.5.
This is still a problem with Chrome even in 3.0.5. document.activeElement.form returns null for <input> tags, therefore the search gets focused everytime I try to write s or f into an input.
Please provide a reproducible scenario (with configuration + Markdown, or even better, a repo), then we can fix it.
Can I send you the website directly? Try this: https://docs.it4i.cz/modules-matrix/ focus the Module Filter input box and type "s". The repository for the website can be found here: https://code.it4i.cz/sccs/docs.it4i.cz.
I've inspected your code - for your purposes: you can wrap the input in a form and the error should be gone. I may improve the detection of active form fields so it doesn't trigger for input fields that are not wrapped inside forms when I find the time at some point in the future.
OK. That's an easy workaround, you're right. Thanks!
Most helpful comment
OK. That's an easy workaround, you're right. Thanks!