我继承了与Chrome 54更新有关的代码库。它有一个输入字段,用于在键入时验证每个字符。随着每个char。输入后,它退出该字段,检查该值,并将光标放回字段中。
对于版本54,Chrome将插入位置设置为0,因此光标永远不会放回到字段中。这导致用户只能在再次单击该字段之前键入一个字符。
示例字段:
GOT: 3,6
Completed
问题似乎出现在NG Pattern Restrict代码(fiddle)中。看起来该代码来自this repo。
我尝试通过擦除模式限制文件来完全绕过验证。这确实会停止验证,但Chrome用户仍然退出(并且未返回)输入。从HTML输入中删除<span id="individual" class="inputROW" ng-show="person.IsIndividual">
<span class="inputROW">
<input type="text" name="fullname" size="18" maxlength="50"
placeholder="Full Name"
ng-model="person.FullName"
ng-bind="person.FullName"
ng-change="setIsDirty()"
ng-pattern-restrict="^[-A-Za-z,. ]*$">
</span>
</span>
允许用户正常键入。但是,这也会导致无法保存数据。
工作:Firefox,Safari,Internet Explorer | 失败: Chrome 54,Opera 41