带有多个复选框的tooltipster错误消息放置问题的jquery验证

时间:2015-10-05 21:25:34

标签: jquery jquery-validate tooltipster

我正在使用工具提示器的jquery validate将错误消息显示为工具提示而不是默认值。我遇到的问题是多个复选框的错误消息放置。我想在主标签上显示(在这种情况下是位置),而不是在第一个复选框上显示。以下是示例代码

形式:

<form id="myform">
    <label for="location">Location</label>
    <br/>
    <label for="telf_local">In state</label>
    <input type="checkbox" id="telf" name="telf" value="1" />
    <label for="telf_movil">Out of state</label>
    <input type="checkbox" id="telf" name="telf" value="2" />
    <br/>
    <input type="submit" />
</form>

JS:

$(document).ready(function () {

    // initialize tooltipster on text input elements
    $('#myform :input').tooltipster({
        trigger: 'custom',
        onlyOne: false,
        position: 'right'
    });

    // initialize validate plugin on the form
    $('#myform').validate({
        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');
        },
        rules: {
            telf: {
                required: true
            }
        },
        submitHandler: function (form) { // for demo
            alert('valid form');
            return false;
        }
    });

});

1 个答案:

答案 0 :(得分:0)

  

我遇到的问题是多个复选框的错误消息展示位置。

您一次为所有input元素配置/初始化ToolTipster ...

$('#myform :input').tooltipster({
    trigger: 'custom',
    onlyOne: false,
    position: 'right'  // <- same position for everything
});

相反,为每个input元素type配置/初始化ToolTipster。然后,您可以为复选框工具提示设置自定义展示位置选项。

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

// checkbox inputs
$('#myform input[type="checkbox"]').tooltipster({
    trigger: 'custom',
    onlyOne: false,
    // your custom positioning options here
});

参见示例here