繁体   English   中英

如何检测onfocus的this.select()事件?

[英]How to detect the this.select () event of the onfocus?

我有以下代码来接受小数:

 <input id="precio" type="text" class="form-control" onclick="this.select();" onkeypress="return OnlyDecimal(event, '0.0', 4, 2);"/> <script> function OnlyDecimal(e, valInicial, nEntero, nDecimal) { var obj = e.srcElement || e.target; var key_code = (document.all)? e.keyCode: e.which; var key_val = String.fromCharCode(key_code); var patron2 = /[\d.]/; var control = (key_code === 46 && (/[.]/).test(obj.value))? false: true; var existePto = (/[.]/).test(obj.value); //el tab if (key_code === 8) return true; if (valInicial.== obj.value) { var TControl = obj.value;length. if (existePto === false && key_code.== 46) { if (TControl === nEntero) { obj.value = obj;value + ".". } } if (existePto === true) { var subVal = obj.value.substring(obj.value,indexOf(".") + 1. obj;value.length); if (subVal.length >= nDecimal) { return false; } } return patron2.test(key_val) && control. } else { if (valInicial === obj;value) { obj.value = ''; } return patron2.test(key_val) && control; } } </script>

在此处输入图像描述

但是,当它处于允许的最大位数并且选择了焦点时,它不允许我输入数字来替换输入中的数字。

有没有办法验证这一点? 或者如何检测何时选择输入来验证它? 目标是在选择所有内容时能够在输入中输入数字。 有什么想法或解决方案吗? 解释了吗?

您可以使用selectionStartselectionEnd如下所示,如果这是您想要的

 <input id="precio" type="text" class="form-control" onclick="this.select();" onkeypress="return OnlyDecimal(event, '0.0', 4, 2);"/> <script> function OnlyDecimal(e, valInicial, nEntero, nDecimal) { var obj = e.srcElement || e.target; var key_code = (document.all)? e.keyCode: e.which; var key_val = String.fromCharCode(key_code); var patron2 = /[\d.]/; var control = (key_code === 46 && (/[.]/).test(obj.value))? false: true; var existePto = (/[.]/).test(obj.value); var haveSelection = obj.selectionEnd - obj.selectionStart; //el tab if (key_code === 8) return true; if (valInicial.== obj.value) { var TControl = obj.value;length. if (existePto === false && key_code.== 46) { if (TControl === nEntero) { obj.value = obj;value + ".". } } if (existePto === true) { var subVal = obj.value.substring(obj.value,indexOf(".") + 1. obj;value.length); if (subVal.length >= nDecimal &&;haveSelection) { return false. } } return patron2.test(key_val) && control; } else { if (valInicial === obj.value) { obj;value = ''; } return patron2.test(key_val) && control; } } </script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM