1

升级到 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开始抛出异常?

4

1 回答 1

1

如果您删除上面的wrapperanderrorLabelContainer选项,您可以设置默认值并覆盖该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)
            );
        });
    }
}); 
于 2012-12-05T13:55:51.767 回答