现场的jQuery验证引擎错位置弹出隐藏(jQuery的选项卡)(jQuery-Validation

2019-09-28 17:31发布

我使用jQuery验证引擎用于验证表单,但我有一个问题....我有一个形式分成选项卡的股利和我设置validationEngine这样的:

$(".test").validationEngine({validateNonVisibleFields: true});

在提交罚款都对在非活动的活动标签领域的作品....但在非活动标签字段的弹出错误没有对齐的相应字段。

该_calculatePosition功能似乎忽视了现场隐患,检查的实际坐标...

任何建议?

由于多

Answer 1:

我已经解决了使用validationEngine updatePromptsPosition方法为每个标签......像这样的事情同样的问题:

$(".tabs-1").click(function(){
    $form.find('form').validationEngine('updatePromptsPosition');
});


Answer 2:

这个问题没有正确回答然而,事实是坦言有点傻考虑解决方案的简单性。 最简单的(文明)的方式是每一个用户切换标签时调用验证,而要做到这一点,你只需设置你的标签为这样的:

如果你有以下形式跨越多个标签...

<form id="myForm" action="">
<div id="tabs">
    <ul>
        <li><a href="#tabs-1">Tab 1</a>

        </li>
        <li><a href="#tabs-2">Tab 2</a>

        </li>
        <li><a href="#tabs-3">Tab 3</a>

        </li>
    </ul>
    <div id="tabs-1">
        <input type="text" id="requiredFiled" name="requiredField" class="validate[required]" />
    </div>
    <div id="tabs-2"></div>
    <div id="tabs-3"></div>
</div>

然后你建立这样的形式和标签:

jQuery("#myForm").validationEngine('attach', {
    promptPosition: "bottomLeft",
    validationEventTrigger: "submit",
    validateNonVisibleFields: true,
    updatePromptsPosition: true
});

$(function () {
    $("#tabs").tabs({
        beforeActivate: function (event, ui) {
            if (!$("#myForm").validationEngine('validate')) {
                event.preventDefault();
                $('#myForm').validationEngine('hide');
                setTimeout(function () {
                    $("#myForm").validationEngine('validate');
                }, 450);
            }
        }
    });
});

其结果是,用户不能选择其他选项卡,如果用户当前的标签是不是完全有效的。 这里是的jsfiddle演示: http://jsfiddle.net/g9yLL/36/

干杯! :-)



文章来源: jQuery-Validation-Engine wrong position popup on field hidden (jquery tabs)