javascript - jQuery 检查输入字段字符是否突出显示

标签 javascript jquery html input

背景

我的页面有 3 个输入货币数字的 input 元素

这些带有 jQ​​uery 句柄的 number 类型的 input 元素,最多允许小数点后两位。如果用户尝试输入第三位小数,则不会打印,这很好。

但是...

问题

当输入已经具有有效的 2d.p 输入(例如 12.11)并且希望突出显示字段字符(例如单击并将突出显示为蓝色)以更改/覆盖所有字符时,jQuery 处理程序认为其第三个十进制输入并且不打印但是它实际上需要做的是覆盖整个并从头开始。

所以

有没有办法检查输入字段字符是否突出显示? 我知道如果我的 inputtype="text" 并且只使用 selectionStartselectionEnd 但我想将其保留为 type="number"

代码:jsfiddle DEMO

对 jQuery 代码处理小数点后两位的任何其他建议,我将不胜感激

最佳答案

如果我正确理解您的问题,请尝试以下最小更新来检测用户是否“突出显示”了输入值:

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

因此,如果通过上述方法找到“选择”(非空/未定义),则代码允许进一步输入(在您的情况下通过突出显示覆盖)。

更新了 fiddle :

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

关于javascript - jQuery 检查输入字段字符是否突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41133735/

相关文章:

javascript - js中数组从零开始递增

html - 用渐变填充 div 的背景图像

php - 如何在电子邮件表单中包含 div 值,然后发送到电子邮件地址?

jquery - 对话框通过计时器自动关闭

jquery - 如何在phonegap+jquery mobile中刷新或重置应用程序?

javascript - 通过随机url重定向传递和添加参数

javascript - 使用 document.createElement 创建 html 元素时更改其在父标记中的位置

javascript - JS事件循环混淆

javascript - Dojo 工具包和 dgrid 的闭包编译器外部

javascript - xpath 选择一个属性值,其中另一个属性是谓词