- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
= pars-6ren">
嗨,我在 html 中有两个文本框 type=number
<input data-sign="BHD " type="number" class="widthinput input__field input__field--yoshiko validation-passed" value="" name="special_price" id="special_price">
<input data-sign="BHD " value="" type="number" class="required-entry validate-zero-or-greater input__field input__field--yoshiko validation-passed" name="price" id="price">
这是我用于检查的 js 代码
if(parseFloat(jQuery('#special_price').val()) >= parseFloat(jQuery('#price').val())){
console.log(parseFloat(jQuery('#special_price').val()));
console.log(parseFloat(jQuery('#price').val()));
alert("You can't enter special price greater than price");
jQuery("html, body").animate({ scrollTop: 0 }, "slow");
e.preventDefault();
return false;
}
当我输入诸如
之类的值时price : 160 , special_price : 90
这个 js 条件工作正常,但是当我输入像
这样的值时price 250.750, special price 55.350
这种情况失败并在控制台中给出错误
An invalid form control with name='price' is not focusable.
An invalid form control with name='special_price' is not focusable.
我使用的是 Chrome 浏览器。
最佳答案
您的代码正在运行,请检查您的 jquery 库。请参阅jsfiddle
或者向表单添加 novalidate
属性将会有所帮助:
<form name="myform" novalidate>
更新
number 类型有一个 step
值控制哪些数字有效(以及 max
和 min
) ,默认为1。该值还用于步进按钮的实现(即,按下时增加step
)。
<input type="number" step="0.01">
只需将此值更改为适当的值即可。对于金钱来说,可能需要两位小数:
(如果它只能是正数,我也会设置 min=0)
如果您希望允许任意位数的小数,则可以使用 step="any"
(不过对于货币,我建议坚持使用 0.01)。在 Chrome 和 Firefox 中,使用 any
时,步进器按钮将递增/递减 1,请参阅 the relevant spec here )
这是一个展示不同步骤如何影响不同输入类型的 Playground :
<form>
<input type=number step=1 /> Step 1 (default)<br />
<input type=number step=0.01 /> Step 0.01<br />
<input type=number step=any /> Step any<br />
<input type=range step=20 /> Step 20<br />
<input type=datetime-local step=60 /> Step 60 (default)<br />
<input type=datetime-local step=1 /> Step 1<br />
<input type=datetime-local step=any /> Step any<br />
<input type=datetime-local step=0.001 /> Step 0.001<br />
<input type=datetime-local step=3600 /> Step 3600 (1 hour)<br />
<input type=datetime-local step=86400 /> Step 86400 (1 day)<br />
<input type=datetime-local step=70 /> Step 70 (1 min, 10 sec)<br />
</form>
关于javascript - 使用 parseFloat 时出错 "An invalid form control with name=' field_name' 不可聚焦。”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42504225/
Number.parseFloat() 和 parseFloat() 有什么区别?一个比另一个好吗? 最佳答案 它们的功能完全相同。他们不仅行为相同。它们是完全相同的函数对象。 为了扩展这一点,Num
我很抱歉,但我需要帮助:( 我尝试将字符串转换为十进制并且它有效,但我有一些问题: number = document.getElementById("totalcost").innerHTM
如何在名为 parseFloat 的 Angular 工厂函数内访问 parseFloat? angular .module('myApp') .factory('mathServic
我从客户的内部 API 获取了一个庞大的数据集。它将包含一堆价格的数字数据,例如:31.23 美元。他把它们作为 {"spend":"21.23"} 给了我,这很好,但我担心在 1000 多个项目并在
这个问题已经有答案了: How to round to at most 2 decimal places, if necessary (91 个回答) 已关闭 7 年前。 我已经阅读了一些示例,了解如
我有一个使用 .toLocaleString() 格式化的输入字段。 然后我需要对该值使用 parseFloat() 将其转换为数字。 要在美国语言环境中执行此操作,我只需在执行 parseFloat
我有以下情况,我正在使用jquery,我需要总结表单上的一些字段。我在小计字段和总计字段中发现了 NaN 错误。我已尽一切可能避免此类错误,我只需要此字段上的 SUM 。我的表单中的所有内容都工作正常
我有一个类别页面,其中显示不同的产品。在每个产品中,我都有一个部分显示原价、保存价格 和新价格。只是为了说明原价的结构: Was £
我有一个文本框,我需要将一个 float 值传递给 api。 现在当我在文本框中输入值“18.575”或“18.09483”时一切正常。 但如果值为“18.000”,则无法正常工作。我知道 18.00
好的,所以我的代码工作正常,但是当为 #chance 输入一个小数,即 60.1、60.2、60.3 等时,它会搞砸利润和支付。 例如:60%为机会输入,1为赌注。它返回 1.65 的工资和 0.65
我正在使用 jQuery 从网页中提取一些数据,它作为一个数组返回,其中包含我尝试添加的以下值 (.5、.25、1.25、3.75)。这是我的代码片段: var th = 0; for (th
我正在学习 Javascript。 在 javascript 中有 parseFloat 和 parseInt 函数是什么意思,事实上,Javascript 不区分 float 和整数——只有数字数据
我正在尝试解析数组中的值,然后将它们添加到图表中。问题是我在输出中得到了一些意想不到的数字。我遍历并填充我的数组。在按钮上单击我循环遍历并解析数据并将其放入另一个数组以传递给图表系列。这在理论上可行,
这个问题在这里已经有了答案: Is floating point math broken? (31 个答案) 关闭 9 年前。 我正在尝试将“9999999999999099”转换为 javascr
我正在从事一个需要“提示框”计算系统的项目。正如您在代码片段中看到的那样,它没有像我预期的那样工作。我该如何解决这个问题? $("select[name='tip']").on('change',fu
我需要验证文本框条目。它应该只允许整数,因为如果用户在绑定(bind)期间在此字段中输入字符,entityframework 将失败。 这里是问题: 当用户在此字段中输入 10-d 时,parseFl
在我的代码中,我有这个: function addNumbers() { var collect = parseFloat(document.getElementBy
我确信这与我对行为的理解有关,而不是 parseFloat 方面的任何不一致操作,但请耐心等待... 如果我输入格式为“IDCODE: (3.5)” 其中IDCODE可能是几个不同的预定义字符串,并且
我在 HTML 表单中有一些输入,使用 javascript 在更改时自动填充输入 问题是下面的代码显示了小数,更长的小数像这样 42880.34623465464356435634 代码是: the
我在转换输入数字时遇到问题,当插入 1,050000 时,它给我的结果不是 1.050000,而是 1.000000。 parseFloat("1,050000").toFixed(6).toStri
我是一名优秀的程序员,十分优秀!