1

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

整个网络似乎有很多不一致之处。

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

哪个是最好的解决方案

4

9 回答 9

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

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

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

于 2009-08-06T08:39:42.250 回答
4

如何验证用户输入并只接受数字字符?

于 2009-08-06T08:38:45.357 回答
4

一种解决方案是将不正确的输入引起用户的注意,以便他们进行更正。根据上下文,四舍五入可能是一个过多的假设。

在金额旁边显示一条错误消息,如下所示:“对不起,我们无法为您提供 4.6 件商品。请输入一个整数。” ...或类似的规定。

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

于 2009-08-06T08:39:21.580 回答
2

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

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

我相信 tesco.com 会这样做。

于 2009-08-06T08:45:03.953 回答
1

根据我的最佳解决方案是

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

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

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

最好的解决方案是通过给它们一个滑块或旋转控件以仅选择整数来首先防止分数。

于 2009-08-06T08:39:16.383 回答
0

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

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

  1. 我会将用户重定向到相同的表单。
  2. 我将使用地板值 (4) 设置该字段。
  3. 我会在字段顶部添加一条消息,例如“此字段必须是整数值。您可能想要 4 件该产品吗?”
于 2009-08-06T08:50:09.483 回答
0

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

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

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

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

于 2009-08-06T08:53:05.343 回答
0

好吧,你绝对不应该围捕。无论请求多么空洞,您都不应为超过客户要求的材料开具账单。

于 2009-08-10T14:45:53.040 回答