javascript - 无法从 HTML 输入类型编号(包括点 (.))获取原始值

标签 javascript jquery html

当我点击输入 <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" />

JSbin demo

更新:

  • input必须具有类型编号,以允许它仅在移动网络上的软键盘上显示数字输入。
  • 它应该检查模式 99.99 并按如下方式工作:

    1. 当输入 9 OK//输入:9
    2. 输入 9 OK//输入:99
    3. 键入 9 NO,它不匹配模式//输入:99
    4. 然后输入 1 NO,它不匹配模式//input: 99
    5. ..在这里可以自由输入任何内容而不是点 (.)...
    6. 键入点(.) OK//输入:99。
    7. 输入 9 OK//输入:99.9
    8. 输入 9 OK//输入:99.99
    9. 输入 9 NO//输入:99.99

如果不检测存在点 (.),我如何检测输入多个 . 的情况?连续 ?

最佳答案

我自己之前也遇到过这个问题。也许这可以帮助:

$("#n").on("keyup", function(event){
  var val = $('#n').val();
  if(event.keyCode == 190) {
    val+='.';
  }
  console.log(val);
  
});
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
<script src="https://code.jquery.com/jquery-2.1.4.js"></script>
<input type="number" id="n" />
</body>
</html>

关于javascript - 无法从 HTML 输入类型编号(包括点 (.))获取原始值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43346284/

相关文章:

javascript - 加载页面时的 jQuery 窗口位置

javascript - 这个 jquery 刷新脚本安全吗?

php - 带有自定义表单的 Google CSE

javascript - 通过与另一个数组的值比较来对数组进行排序

javascript - Jquery 验证不适用于 php 表单操作

javascript - 难以定位使用 CSS 滑动的 div

javascript - 单击 anchor ,在同一窗口中下载文档

javascript - 单个<select>有多个选中选项

javascript - 自定义 HTML 标记内的元素未在构造函数中初始化

javascript - 使用循环将 id 添加到复选框