2

所以我们正在使用 parsley.js。问题是,我认为它不能与 Safari 一起使用跨浏览器。

第一个错误: 我有这个input,你只能输入数字。它看起来像这样:

input#mtlbeitrag.pull-right(data-type="number", name="vb", value="#{calc.vb}", required="required", min="0")

当我现在输入“1000”时,欧芹所做的就是让这个数字也变成“1.000”。显然这是一个问题,因为我们将该数字解析为整数。所以你的算法解析“1.000”,应该是“1000”到“1.0”。

第二个错误: Parsley 忽略了require标签。不仅弹出消息不起作用,而且仅显示为列表元素。不,它还允许用户提交输入错误的表单。 在 Safari 上 在 Chrome 上

我的问题是:这些众所周知的错误还是我们刚刚实施的方法是错误的?任何人都可以用 safari 确认这个错误吗?

在 Google Chrome 上,不会发生这些错误。

此外,是否有更好的跨浏览器库可以做到这一点?

PS:当我在 Safari 上做这个测试时,什么也没有发生。

4

1 回答 1

3

您是否可能正在使用 HTML5 表单验证并忘记添加novalidate到封闭的表单标签?如果novalidate未找到,则 HTML5 表单验证将接管并覆盖欧芹所做的任何事情......

我相信后备,所以我包括这个:

$("form.js-validate").attr("novalidate","novalidate").parsley();
                       ^

这样,如果由于某种原因没有加载 JS,HTML5 验证将是后备。(请注意,在这种情况下,您必须data-validate="parsley"从表单中删除,或者您只是$("form.js-validate").attr("novalidate","novalidate")在加载时使用)

仅供参考:Safari 失败的原因是它的 HTML5 验证“滞后”。

老问题,但也许一些大胡子的互联网旅行者会得到帮助

于 2013-08-02T02:06:44.973 回答