【问题标题】:How format number and put in input如何格式化数字并输入
【发布时间】:2018-07-31 21:10:59
【问题描述】:

我有一个输入数字,我必须接受 34,34 两位十进制数字的值,所以我的代码是:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ page isELIgnored="false"%>
    <input type="number" min="0" name="price" pattern="0.00"
                        step=".01" required
                        value="<fmt:formatNumber type = "number" 
                        pattern="0.00" value = "${home.price}" />"

问题是输入为空是没有加载值,因为如果我这样做了

<label><fmt:formatNumber type = "number" 
                    pattern="0.00" value = "${home.price}</label>

号码以正确的形式打印。谁能帮帮我?

【问题讨论】:

    标签: jsp jstl


    【解决方案1】:

    使用fmt:formatNumber 上的var 属性来存储结果并在您的输入中使用它,并确保您使用的语言环境提供了浏览器可以使用的数字:

    <fmt:setLocale value="en"/>
    <fmt:formatNumber type="number" 
                      pattern="0.00" value="${home.price}"
                      var="myNum"/>
    <input type="number" min="0" name="price" pattern="0.00"
                        step=".01" required
                        value="${myNum}"/>
    

    尤其是语言环境让这很丑,所以我真的建议看看

    另见:

    【讨论】:

    • 测试过了。为我工作。顺便看看 JSF。
    • 我的控制台给我这个警告指定的值“34,34”不是一个有效的数字。该值必须与以下正则表达式匹配:-?(\d+|\d+\.\d+|\.\d+)([eE][-+]?\d+)
    • 哈,那是因为你的语言环境...我已经更新了答案。
    • #Jasper 问题出在这里 pattern="0.00" 如何修改为 34,34" 8,34" 的打印值
    • @Jasper de Vries 你的解决方案很有效!我忘了放 ,现在可以了!
    猜你喜欢
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    • 2019-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-03
    • 2014-07-23
    相关资源
    最近更新 更多