0

要显示的 jsfiddle:http: //jsfiddle.net/2DUX2/277/

我正在尝试将 jquery validate 与 tooltipster 一起使用。它一直有效,直到我尝试添加更多项目,然后它尝试转到表单操作而不是验证新字段。有人知道我在做什么错吗?

$('#RMAForm input[type="text"], select').tooltipster({
    trigger: 'custom',
    onlyOne: false,
    position: 'right'
});

// initialize validate plugin on the form
$("#RMAForm").validate({
    // any other options & rules,
    errorPlacement: function (error, element) {
        var lastError = $(element).data('lastError'),
            newError = $(error).text();

        $(element).data('lastError', newError);

        if(newError !== '' && newError !== lastError){
            $(element).tooltipster('content', newError);
            $(element).tooltipster('show');
        }
    },
    success: function (label, element) {
        $(element).tooltipster('hide');
    }
});

我在表单元素上使用了所需的类

4

2 回答 2

1

通常,我会说您未能在动态创建的元素上声明规则。但是,由于您已经通过内联属性声明了规则,因此该部分工作正常。绕过验证的表单意味着验证被破坏(这种情况不是由于未能在动态元素上声明规则引起的)。

在您的情况下,该.validate()方法被 ToolTipster 破坏,正如控制台错误所验证的那样。

错误:您在未初始化的元素上调用了 Tooltipster 的“内容”方法

这意味着您还必须在创建新元素.tooltipster调用该方法。我只是将以下代码复制到您的处理程序函数中,并在创建新元素后放置它。click

$("#AddOne").click(function () {

    // your code that creates new form elements.

    // attach ToolTipster to new elements here...

    $('#RMAForm input, select').tooltipster({
        trigger: 'custom',
        onlyOne: false,
        position: 'right'
    });

    ....

工作演示:http: //jsfiddle.net/2DUX2/278/

于 2014-10-13T21:59:54.593 回答
0

对于动态添加的元素,您将不得不使用委托功能。这里有更多关于它的信息:jquery 委托

于 2014-10-13T20:49:08.863 回答