When you double click on words in the input, it highlights additional empty space

Here is a basic input field with some text inside:

document.querySelector('.input').value = 'Double click on words without extra space'
.input {
  width: 400px
}
<input type="text" class="input" placeholder="">

When double-clicking any word in the input, it will be selected along with an extra space after it, except for the last word.

Is there a way to have double-clicking select only the whole word without including that additional space?

Answer №1

To adjust the text selection, you can utilize the Selection#modify() method by specifying parameters like alter: "extend", direction: "left", and

granularity: "character"
.

As stated on developer.mozilla.org:

The Selection.modify() function allows for making changes to the existing selection or cursor position using simple textual commands.

const inputElement = document.querySelector('.input');
inputElement.value = 'Double click on words without extra space';

inputElement.addEventListener('dblclick', function(event) {
  const selection = window.getSelection();
  const text = selection.toString();

  if (/\s+$/.test(text)) { // Checking for trailing whitespace
    selection.modify("extend", "left", "character");
  }
});
.input {
  width: 400px
}
<input type="text" class="input" placeholder="">

Similar questions

If you have not found the answer to your question or you are interested in this topic, then look at other similar questions below or use the search

The unit argument provided for Intl.NumberFormat() is not valid for electrical units such as volts and joules

After attempting to localize my web application, I have run into an issue with Intl.NumberFormat not working properly with electric units such as ampere, ohm, volt, and joule. The documentation provides examples and a list of available units. Despite fol ...

Why do ES6 classes fail to set properties when an overloaded function is called within the constructor of the parent class?

I encountered a puzzling scenario while coding that has left me perplexed. Here's the situation: I am extending a class from a library, which serves as the "Parent"-class. It allows its subclasses to override the init-method for custom initialization ...

How can I immediately disable a button upon clicking "cancel" on a modal that contains TextFields in React Version 18?

New to React development. Looking for a way to reset a button to its initial disabled state when canceling out of a modal. The scenario is that upon clicking a button, a dialog will appear with an "ADJUST" button that is initially disabled until text is ...

Issues with select options not functioning correctly in knockout framework

Currently, I am engaged in a project where data is being retrieved from an API. The main task at hand is to create a dropdown list using select binding. In order to do so, I have defined an observable object to hold the selected value within my data model. ...

Having trouble with the installation of react-burger-menu

While attempting to install the react-burger-menu library on a React project using npm install react-burger --save, I encountered an error that is preventing me from progressing with my project: npm ERR! While resolving: MYPROJECT npm ERR! Found: [email&# ...

Removing a portion of an item with the power of RxJS

I possess the subsequent entity: const myObject = { items:[ { name: 'John', age: 35, children: [ { child: 'Eric', age: 10, sex: 'M' }, { ...

What is the best way to identify a trio of items in an array whose combined total matches a specific target sum?

I am currently utilizing three loops to tackle this problem, but the complexity is O(n3). Is there a way to achieve this with a lower complexity level? Sharing a JS Fiddle code snippet for the three loops approach: var arr = [1, 2, 3, 4, 5, 6, 7, 8]; v ...

I have noticed that the share buttons on Sharethis.com only show up after I resize the viewport

After integrating share buttons from Sharethis.com, I noticed that they do not appear when the page is refreshed. However, when I resize the viewport, they suddenly show up. <!DOCTYPE html> <html lang="en"> <head> <script t ...

Is it possible to assign a specific value to a row within a table?

For each row (tr) generated from my database, I would like to assign a unique row value. Let's consider the table being created: while ($row = $database->fetch_array($result)) { $i=1-$i; $class = "row".$i; echo "<tr class='{$class} produ ...

I'm attempting to make the button hover color transparent, but unfortunately, it's not having any effect

Check out the code snippet below. I'm attempting to adjust the button hover color to transparent. The div class is "button_container" while the button class is "btn". I made changes to the color initially, but it doesn't seem to be working. Any a ...

Is it possible to design the website with Qt?

I'm currently in the process of developing a website and I was wondering if it would be possible to use Qt for both designing the user interface and handling web-related tasks. While I have experience using Qt for UI design, creating websites is relat ...

Strategies for accessing elements within a #shadow-root

Having trouble changing the display style inside of the #shadow-root and targeting it. Can I do it through CSS or JS? #retirement-services-modal #rs-two-col::shadow(.wrapper) { display: flex; align-items: center; } ...

Conceal Primeng context menu based on a certain condition

I'm struggling to prevent the context menu from showing under certain conditions. Despite following the guidelines in this post, the context menu continues to appear. My goal is to implement a context menu on p-table where it should only show if there ...

Is your div not loading correctly due to JQuery or Javascript?

PHP Version 7.0 JQuery Version 3.1.0 It is noticeable that the content above gets copied and pasted every five seconds instead of refreshing. The aim is to refresh the include every five seconds. Website: Code: <!doctype html> <html><h ...

Setting up multiple versions of npm application

Can I have multiple versions of npm installed for different projects on Windows 10, or are npm installations always global? I attempted to install different versions using https://github.com/marcelklehr/nodist, but it only affected the node version and no ...

The custom div slider speed is too quick, specifically when transitioning back from a different browser tab

While observing the code in action, everything seems to work fine but when I switch to another browser tab and come back, the speed of the animation is too fast. Below is the jQuery code snippet: var divId = 1; var lp = 0; $(document).ready(function (){ ...

Tips for loading images from the local file system in Angular JS

As a beginner with AngularJS, I am looking to display an image from a sub-folder. Here is my controller code: $scope.img_source = "../WebContent/Welcom2Iquote.gif"; This is how the code looks in my index.html: <img ng-src="{{img_source}}"/> ...

Utilizing dynamic props JSON object to modify the state

Within my component, I am working with a json object passed in as a prop from the parent component, where the API call to populate this json object is made in the parent component itself. My current challenge is figuring out how to properly define the sta ...

Using jQuery to dynamically insert variables into CSS styles

I am attempting to use jQuery 3 to modify the CSS of a class and change the background color. My first step is converting an rgba color code (properties.color) to a hexadecimal code, which is functioning correctly. Next, I try to change the background co ...

Having difficulty controlling the DOM using cheerio in a Node.js environment

I am currently working on a basic program using Node for the server side with cheerio. Here are the code snippets provided: Server Side: /** * Module dependencies. */ var express = require('express') , routes = require('./routes') ...