【发布时间】:2013-09-28 23:50:06
【问题描述】:
自 iOS 7 推出以来,我们收到的订单在输入数据的末尾缺少一个字符。
例如,如果我在名称字段中输入Tanveer b Bal,它将返回Tanveer b Ba。请看下面的截图:
我相信这个错误可能是由于我们在输入上使用trim 过滤器来删除空格。我们使用dojo/_base/langtrim函数:https://github.com/dojo/dojo/blob/1.9/_base/lang.js#L510
String.prototype.trim ? function(str){ return str.trim(); } : function(str){ return str.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); }
有其他人遇到过这个问题吗?
复制说明
- 访问http://demo.zoopcommerce.com
- 加入购物车
- 结帐
- 输入电子邮件地址和姓名,然后单击下一步
- 电子邮件地址可能现在缺少最后一个字符
更新:
我在这里创建了一个修剪测试器:http://jsfiddle.net/QJFBL/embedded/result/,但它似乎在 iOS 7 上运行良好。(创建了另一个具有更多依赖项的测试器:http://jsfiddle.net/qmKvZ/8/)
我还在 http://crossbrowsertesting.com/ 上的 iOS 7 虚拟机上尝试了我的实现,并且再次成功。
更新 2: http://www.browserstack.com/ 今天发布一个 iOS7 虚拟机。我试过结帐,结果好坏参半。有时会发生错误,有时不会。但是,在简单的剥离版本http://jsfiddle.net/qmKvZ/9/embedded/result/ 上仍然没有出现该错误,这让我认为可能存在更深层次的问题?
【问题讨论】:
-
您在三元组的第三个子句中缺少一个结束
}:function(str){ return str.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); -
谢谢。这实际上只是我的一个糟糕的复制和粘贴。代码没有那个错误。见:github.com/dojo/dojo/blob/1.9/_base/lang.js#L510
标签: javascript ios dojo safari ios7