Skip to content

Instantly share code, notes, and snippets.

@hensm
Last active June 9, 2016 23:59
Show Gist options
  • Save hensm/43ec75885a20e19b66cd to your computer and use it in GitHub Desktop.
Save hensm/43ec75885a20e19b66cd to your computer and use it in GitHub Desktop.
Input Capitalisation
// ==UserScript==
// @name Input Capitalisation
// @namespace https://cssu.in
// @author Marcii <marcii@cssu.in>
// @include *
// @version 1
// @grant none
// @run-at document-end
// ==/UserScript==
function on_input(ev) {
let val = ev.target.value || ev.target.textContent;
if (val.length === 1) {
let upper = val.toUpperCase();
if (ev.target.value) {
ev.target.value = upper;
} else {
ev.target.textContent = upper;
let range = document.createRange();
let selection = window.getSelection();
range.selectNodeContents(ev.target);
range.collapse(false);
selection.removeAllRanges();
selection.addRange(range);
}
}
}
Array.from(document.querySelectorAll(`
input[type="text"],
input[type="search"],
textarea,
[contenteditable]
`)).forEach(input => {
input.addEventListener("input", on_input, false);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment