我已经做好了准备,需要实现三个单独的目标:
问题是,当它工作时,验证插件会引发浮点值错误(无效格式),因为十进制分隔符与pattern="0-9*“regexp不匹配。下面请找到一个示例输入字段:
<input type="text" id="acme" name="acme" size="4"
data-autonumeric="{vMin: '0.00'}" class="required number autoNumeric"
min="0.0" step="0.01" pattern="[0-9*]">
是否有一种方法可以禁用所有已验证字段的模式验证(最好是全局验证),或者每个字段都禁用模式验证?或者,在iPad/iPhone上强制使用数字键盘的另一种方式,并不意味着type="number“或pattern="0-9*"?
编辑:
我找到了解决这个问题的方法,请看下面的答案。如果有人有更好的想法,请分享。谢谢。
发布于 2013-02-20 08:34:49
通过在jQuery验证中重写模式验证方法,我找到了一种方法。如果有人知道更好的解决方案,请评论。
这是密码。它适用于jQuery.validator.addMethod(“模式”)。添加(忽略\d* )-要在iOS中显示数字键盘,可以将模式属性值设置为"0-9“或"\d",我使用该值(源http://developer.apple.com/library/ios/#documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html)。请注释掉这一行,以查看问题正在执行中。
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.0/jquery.validate.min.js"></script>
<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.0/additional-methods.min.js"></script>
<script type="text/javascript" src="jquery.metadata.js"></script>
<script type="text/javascript" src="autoNumeric-1.7.4.js"></script>
<form id="test">
<input type="text" id="acme" name="acme" size="4" data-autonumeric="{vMin: '0.00'}"
class="required number autoNumeric" min="0.0" step="0.01" pattern="\d*" value="1.00">
</form>
<script type="text/javascript">
$(document).ready(function () {
$("#test").validate();
});
// This overrides the additional-methods.min.js implementation to ignore pattern="\d*" validation
jQuery.validator.addMethod("pattern", function (e, t, n) {
return this.optional(t) || n == "\\d*" ? !0 : (typeof n == "string" && (n = new RegExp("^(?:" + n + ")$")), n.test(e))
}, "Invalid format.");
</script>
https://stackoverflow.com/questions/14970650
复制相似问题