【问题标题】:Number Formatting (input mask) in jQueryjQuery中的数字格式(输入掩码)
【发布时间】:2011-09-24 22:19:05
【问题描述】:

我正在尝试像这样在文本字段中格式化数字:

123,456,789

我知道有很多 jQuery 插件可以做到这一点,但是,它们都改变了实际值。我只是希望它看起来已格式化,而不是格式化发送。

例如,如果我在文本字段中输入23845,我希望它在视觉上转换为23,845,但是当我发送表单时,我希望它以23845 发送。

有谁知道我如何做到这一点?我见过的所有其他解决方案都会更改实际提交的值。

【问题讨论】:

    标签: jquery number-formatting


    【解决方案1】:

    请尝试以下方法:

    <script type="text/javascript">
    
            $(document).on('keyup', '.test', function() {
                var x = $(this).val();
                $(this).val(x.toString().replace(/,/g, "").replace(/\B(?=(\d{3})+(?!\d))/g, ","));
            });
        </script>
    
        <form>
           <input class="test" type="text" />
        </form>
    

    【讨论】:

      【解决方案2】:

      AFAIK,掩码插件不会更改值,而只会更改显示:http://plugins.jquery.com/plugin-tags/mask

      [edit] 在所有插件列表中,我在我的代码中使用了这个:https://github.com/RobinHerbots/jquery.inputmask ([edit 2] 并按你的意愿工作 我检查了代码我在哪里使用它,默认行为是它发送掩码 with 值,您需要使用一个选项来取消掩码,正如我在评论中所说)

      【讨论】:

      • 终于让它工作了,但它有发送表单提交的掩码值的问题。也许我错过了什么...... =(
      • 这取决于您选择的输入掩码插件。有些人可以选择取消屏蔽(但与我所说的相反 - 抱歉 - 这似乎不是默认行为)。在这里查看unmask 解决方案:github.com/RobinHerbots/jquery.inputmask/issues/8
      • 感谢您的帮助!我已经决定 inputmask 不是我想要的(不喜欢它在那里有占位符和固定字符,我不知道如何去掉它们),但是你已经指出了我的权利方向,我最终找到了MeioMask。效果很好。我用 .submit() 事件取消了掩码。 meiocodigo.com/projects/meiomask
      • @Ryan:很高兴你找到了解决问题的方法:)
      猜你喜欢
      • 1970-01-01
      • 2016-04-11
      • 1970-01-01
      • 1970-01-01
      • 2020-10-10
      • 2018-04-06
      • 2014-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多