例如,如果一位顾客“愚蠢”(这里是礼貌的),尝试将 4.6 件商品添加到他们的购物篮中,您会期望看到什么?或者你会如何处理它。显然,我们只处理数字量(我们的钢锯上周坏了)。

网上似乎有很多不一致的地方。

  • 亚马逊向下舍入(4.6->4、1.3->1)
  • FireBox 弹 (4.6->5, 1.3->1)
  • Ebuyer忽略输入(没有错误)
  • Expansys 从您的购物篮中删除该商品
  • 我假设某些网站会显示错误

哪个是最好的解决方案

有帮助吗?

解决方案

  1. 添加 JavaScript 验证,在用户输入时删除非数字输入

  2. 针对 JavaScript 关闭时的情况实施向后解决方案,要么显示错误消息,要么舍入值,但随后显示一条消息“您的输入已调整”

添加:另请注意,分隔小数部分与整数部分的字符因国家/地区而异。在美国我相信它是“.”,在欧洲它通常是“,”。如果您的应用程序针对具有不同数字表示形式的不同国家/地区的客户,那么在应用程序逻辑中实现对这两种字符的支持是有意义的。否则,一些用户将收到格式错误消息而不知道原因 - 非技术人员通常不知道此格式问题。

其他提示

验证用户输入并仅接受数字字符怎么样?

一种解决方案是提醒用户注意错误的输入,以便他们可以纠正。根据上下文,四舍五入可能是一个过多的假设。

在金额旁边显示一条错误消息,如下所示:“很抱歉,我们无法向您提供 4.6 物品。请输入一个整数。” ...或类似的内容。

另一种解决方案是通过限制输入字段仅允许有效输入来避免显示错误消息。即如果您不想要 4.6 项...仅允许用户能够键入 0-9。如果用户无法输入错误的内容,那么就没有任何理由显示错误消息。

假设您在这里讨论的是网络应用程序,您可以限制输入框中允许的字符。

或者,IMO 您可以使用微调器 (+/-) 控件来更改数量。

我相信tesco.com 就是这么做的。

我认为最好的解决方案是

  1. 客户输入:4.6
  2. 提交后值更改为 5(或者如果是 4.4,则四舍五入为 4)
  3. 显示通知,告诉用户只有整数有效,并且系统已将“您的”输入 (4.6) 舍入为 5

一种解决方案是,当用户关闭允许输入分数的编辑字段时,通知用户他们的选择无效。

一个较小的选择是四舍五入(向下舍入,除非您贪婪地出售 1 件额外的物品),或者完全拒绝输入。

最好的解决方案是首先通过为分数提供滑块或旋转控件来仅选择整数来防止分数。

最后,添加服务器端检查总是更安全。

因此,如果输入不是整数值:

  1. 我会将用户重定向到相同的表单。
  2. 我将使用下限值 (4) 设置该字段。
  3. 我将在该字段的顶部放置一条消息,例如“该字段必须是整数值。也许您想要 4 件这个产品?”

在我看来,如果您的产品是一个购物系统,那么主要目标是销售一些商品是有道理的。通常客户希望执行尽可能少的操作,因此系统应该预测客户在输入错误的输入时可能想要什么。

  • 亚马逊向下舍入(4.6->4、1.3->1) - 对我来说最好,因为小数点后的所有内容都可以注定为其他输入;
  • FireBox 弹 (4.6->5, 1.3->1) - 对我来说,我不喜欢有人想卖给我的东西比我想买的多,所以“地板”比“圆形”更好;
  • Ebuyer忽略输入(没有错误) - 那么你什么也卖不了,用户需要再次输入一些值;
  • Expansys 从您的购物篮中删除该商品 - 太糟糕了,现在我需要再次在商店中搜索该商品;
  • 我假设某些网站会显示错误。 - 不错,但需要用户重新输入值;

我将实施亚马逊加上通知用户输入不完全清楚并要求他重新检查该值。因此,如果系统猜对了,那么用户不需要进行任何更改,但如果他输入错误,他会立即看到它。

您还可以记录所有此类事件,然后进行分析,了解用户第一次输入的内容以及他购买的实际数量。只是为了好奇...

嗯,你绝对不应该四舍五入。无论客户的要求多么愚蠢,您都不应该收取比客户要求更多的材料。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top