How to adjust the Width of Input Field Automatically using JavaScript?


We can use JavaScript to adjust the width of an input field automatically. This can be done by using the element's style property to set the width based on the input's value. By constantly updating the width as the user types, we can ensure that the input field is always the appropriate size for the input.

Here is one approach to adjust the width of an input field automatically using JavaScript −

  • Select the input field using JavaScript, for example, by using the document.querySelector() method −

var inputField = document.querySelector("#myInput");
  • Add an event listener to the input field that listens for the "input" event −

inputField.addEventListener("input", adjustWidth);
  • Create a function called "adjustWidth" that calculates the width of the input field based on the length of the input field's value −

function adjustWidth() {
   var value = inputField.value;
   var width = value.length * 8 + 25; // 8px per character
   inputField.style.width = width + "px";
}
  • Call the adjustWidth function whenever the input field's value changes −

inputField.addEventListener("input", adjustWidth);
  • Now, the width of the input field will adjust automatically as the user types in the field.

Note − The width calculation used in the example above is based on 8px per character. You may need to adjust these values based on the font and style of your input field.

Example

Here's a full working example of how to adjust the width of an input field automatically using JavaScript −

<html>
<head>
   <style>
      #myInput {
        	font-size: 20px;
      }
   </style>
</head>
   <body>
      <input type="text" id="myInput">
      <script>
         // adjust width on initial load
         window.onload = adjustWidth;
         
         // Select the input field
         var inputField = document.querySelector("#myInput");
         
         // Add an event listener to the input field
         inputField.addEventListener("input", adjustWidth);
         
         // Function to adjust the width of the input field
         function adjustWidth() {
            var value = inputField.value;
            var width = value.length * 8 + 25; // 8px per character
            inputField.style.width = width + "px";
         }
      </script>
   </body>
</html>

Updated on: 13-Feb-2023

6K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements