如果之前已经提出过这样的道歉,我还没有找到任何以前全面提出这个问题的问题,也没有找到覆盖它的答案。
我想要一个客户端javascript(或JQuery)解决方案,强制用户在输入字段中使用整数。 (对于购物篮中商品的数量:在产品页面上添加商品时,以及在结帐前查看购物篮时)。
也许是出于困难,要求是:
简而言之,我希望这是完美的设计。显然我会有服务器端代码来检查有效性,但我想关注可用性。
这是我想到的程序,但是想要提出有关潜在陷阱的问题,等等,全面涵盖用例。
客户端算法可以分为两个三个块:按键验证/过滤,去焦点验证/过滤,提交验证/过滤。
首先,JQuery中有任何本机函数可以帮我吗?如果没有,以下算法如何发声?
按键,然后按键更改:删除不在0-9范围内的字符。然后检查内容是否包含空字符串,或者可解析为正整数。 (这将允许剪切和粘贴)。但如果它不可解析呢?在设想无数的用例方面,我不想重新发明轮子。
失去焦点或提交时,请执行以上检查。 (以相同的方式,除了将空字符串转换为零)
我担心这会影响智能电视,智能手机和平板电脑,辅助功能工具等设备的可用性。
简而言之,我的问题是:我有什么方法可以避免在这里重新发明轮子?这个问题已经彻底解决了,并且在某个地方是最新的吗?我把这整件事吹得不成比例吗?
由于
答案 0 :(得分:1)
你的问题是很多人面临的问题,但我不知道有什么标准的解决方案。话虽如此,我猜你仍然会把事情搞得一团糟。(理想情况下,你不应该改变用户输入的任何内容,你应该告诉他错误,但不要自动更改)。现在,您只需使用正则表达式使用HTML5验证。如果用户输入的内容不满足RegEx,则文本框旁会显示错误消息,在解决问题之前不应允许他继续操作。这样,相同的RegEx可用于处理所有情况,如整数,非空文本框等。例如:/ ^ [+]?([0-9] +)$ /可用于正数。您也可以使用javascript实现相同的功能。