【发布时间】:2021-06-24 23:43:57
【问题描述】:
当我点击输入 <input type="number" id="n" /> 时;在输入的keypress 函数上键入一些键。然后输入.,虽然它显示在输入中,但我在$('#n').val() 中看不到.。
例如输入后:123. 然后$('#n').val() 只返回123。
<input type="number" /> 是否有任何属性可以让我得到它的raw value,即123. 而不是123?
$("#n").on("keypress", function(event) {
console.log($("#n").val());
});
<script src="https://code.jquery.com/jquery-2.1.4.js"></script>
<input type="number" pattern="[0-9]{1,2}([\.][0-9]{1,2})?" id="n" step="0.01" />
更新:
-
input必须具有类型 number 才能使其仅在移动网络的软键盘上显示数字输入。 -
它应该检查模式 99.99 并按如下方式工作:
- 当输入 9 OK // 输入:9
- 类型 9 OK // 输入:99
- 类型 9 否,它不匹配模式 // 输入:99
- 然后输入 1 NO,它不匹配模式 // 输入:99
- ..在此处输入任何内容而不是点(.)...
- type dot(.) OK // 输入:99.
- 类型 9 OK // 输入:99.9
- 类型 9 OK // 输入:99.99
- 类型 9 NO // 输入:99.99
如果不检测存在点(。)如何检测连续输入多个.的情况?
【问题讨论】:
-
使用
keyup事件 -
@Satpal:
keyup不起作用jsbin.com/korofateji/1/edit?html,js,console,output -
123.是123,为什么需要句号?怀疑你会得到它,因为没有真正的方法可以得到原始价值。 -
@epascarello:因为我想每次都用这个信息来限制输入数字。即:在 dot(.) 123.4 之后只允许 1 个数字 - 因此必须检测到
.的存在 -
所以 .在他们添加一个数字后会在那里。您遇到的问题是输入数字会为您解析它,因此您无法控制。您可以监听关键事件并查看值是什么,但不能读取值。
标签: javascript jquery html