我可以在不更改验证行为的情况下更改Html Number输入中向上/向下箭头的行为吗?
问题描述:
我的工作是用来记录作业成本代码计费费率MVC应用程序中,我使用HTML辅助以这样的页面上生成的输入列表:我可以在不更改验证行为的情况下更改Html Number输入中向上/向下箭头的行为吗?
@Html.EditorFor(m => m.LineItemRates[i].REG, new { htmlAttributes = new {
@class = "reg form-control input-sm", @type = "number", step = "0.01",
placeholder = "Regular Time..", @required = "required" } })
这些投入工作的伟大,但我想知道是否有我可以使用的选项,这样当用户点击向上/向下箭头时,该值将增加1美元而不是1美分,但仍按照步骤=“0.01”进行验证?
目前,它的时间,我明白了为什么考虑步骤=“0.01”价值上升由一美分。我喜欢使用该步骤值,因为它使得客户端验证可以轻松地依赖于Html5验证。
有没有简单的方法让我改变步骤按钮的行为,同时保留这个数字输入提供的简单验证?
答
这是因为您明确指定步长值为“0.01”。
如果删除它,它会增加值,而不是小数。
@Html.EditorFor(m => m.LineItemRates[i].REG, new { htmlAttributes = new {
@class = "reg form-control input-sm", @type = "number",
placeholder = "Regular Time..", @required = "required" } })
但是,使用这种方法,你将失去数的小数部分(假设你的属性是十进制/ double类型)从输入当用户点击向上/向下箭头。
如果您需要小数部分,则缺省情况下没有直接的方法来增加.
之前的值。如果绝对需要,您可以想出一些疯狂丑陋的JavaScript解决方案,您可以将原始值保留在隐藏变量中,并在change
事件中使用原始值(其中h为小数部分)更新值,以及继续使用新值更新此临时变量值。但就像我提到的那样很丑,我会尽可能远离它。
还记得客户端验证只是一个方便的帮手。您必须始终验证服务器上的输入。
我终于在SO上找到了答案,对这个问题给出了很好的解释。上面提到的副本解释了为什么html5当前不可能在不更改验证的情况下更改步骤行为。 – MUlferts