Luminous_Dev
Luminous_Dev

Reputation: 614

jQuery check if input field characters are highlighted

Background

I have a page that has 3 input elements which takes currency numbers

These input element of type number with jQuery handles which letting up to 2 decimal placing. If user tries to input 3rd decimal, it does not print which is great.

However...

Issue

When input already has valid 2d.p input such as 12.11 and wishes to highlight the field characters (such as click drag highlight to blue) to change/overwrite all, the jQuery handler think that its 3rd decimal input and does not print BUT what it actually needs to do is to overwrite the whole and start from the beginning.

So

Is there a way to check if the input field characters are highlighted? I know that there is a way around this if my input has type="text" and just use selectionStart and selectionEnd BUT I want to keep it as type="number".

Code: jsfiddle DEMO

Any other suggestion to jQuery code handling 2 decimal place, I would appreciate

Upvotes: 2

Views: 896

Answers (1)

roger
roger

Reputation: 1141

If I am understanding your issue correctly, try the following minimal update to detect if the user has 'highlighted' the input value:

if (CharAfterdot > 3 && !window.getSelection().toString()) { return false; }

So if a 'selection' is found via the above method (not empty / undefined) the code allows further input (in your case overriding via highlight).

Updated fiddle:

https://jsfiddle.net/qtr30w05/3/

Upvotes: 3

Related Questions