jquery IE8 验证跳过所有规则并执行 submithandler

jquery validation on IE8 skips all the rules and executes the submithandler

我正在开发一个包含许多表单的工具,我正在使用 jquery(1.11.3) validate plugin(1.14.0) 进行验证。它适用于所有浏览器 - Chrome、FF、IE9 及更高版本。

在IE8上,规则全部跳过,直接执行submithandler里面的代码。

我不能使用小于 1.9 的 jquery,因为我使用 bootstrap 3.

需要帮助解决这个问题。

示例代码:

$("#additionalDetailsForm").validate({ rules : { aadhaarNum : { required: true, digits: true, minlength: 12 }, passportNum : { required: true, passport : "Invalid Passport Number (X0000000)" } }, messages : { aadhaarNum : { digits : "Aadhaar number invalid (only numbers)", minlength : "Aadhaar number invalid (12 digits)" } }, submitHandler : handleSubmitForEachForm });

一件重要的事情可能是我正在使用 AJAX 加载表单的 HTML 然后在 AJAX 成功时将 HTML 附加到DOM,之后我运行上面的代码将验证绑定到表单。

我通过将 jquery.validate.js 版本降级到 1.11.0 解决了这个问题。解决方案来源 - https://github.com/jzaefferer/jquery-validation/issues/795#issuecomment-126140808

来自issue-795

I was using the validation v1.11.1 (https://github.com/jzaefferer/jquery-validation/tree/1.11.1) in my project but when I tested at IE8, the submitHandler function runs ok but it doesn't validate the fields then, the form submit is executed.

Also, using the v1.11.0 (https://github.com/jzaefferer/jquery-validation/tree/1.11.0), the form is correctly validated at IE8.