升级到jQuery 1.8.2后的验证异常

时间:2012-12-05 10:47:51

标签: javascript jquery jquery-plugins jquery-validate

升级到jQuery版本1.8.2后,我的验证插件(最新版本1.10.0)开始给我例外:

  

错误:语法错误,无法识别的表达式:div class =“warningZone”jquery.js(第4679行)

这是我的javascript:

function validateAll() {
    $("#servicesForm").validate({
        errorLabelContainer: "#servicesErrors",
        wrapper: "div class=\"warningZone\"",
        rules: {
            mainTransport: { mMainTransportReq: true, mMainTransportNotReq: true },
            stay: { mStayReq: true }
        },
        messages: {
            mainTransport: {
                mMainTransportReq: $("#servicesMainTransportReq").text(),
                mMainTransportNotReq: $("#servicesMainTransportNotReq").text()
            },
            stay: { mStayReq: $("#servicesStayReq").text() }
        }
    });

    $("#servicesForm").valid();
    validatePeriods();
    validateServices();
}

为什么我的班级warningZone开始抛出异常?

1 个答案:

答案 0 :(得分:1)

如果您删除上面的wrappererrorLabelContainer选项,则可以设置默认值并覆盖showErrors功能:

$.validator.setDefaults({
    showErrors: function(errorMap, errorList) {
        if (errorList.length < 1) {
            // clear the error if validation succeeded
            $('div.warningZone').remove();
            return;
        }
        $.each(errorList, function(index, error) {
            $('div.warningZone',"#servicesErrors").remove();
            $('#servicesErrors').append(
                $('<div/>')
                    .addClass('warningZone')
                    .append(error.message)
            );
        });
    }
});