LiveValidation + UI TAbs - 一个包含多个验证的页面

时间:2011-02-14 18:24:12

标签: jquery user-interface jquery-ui-tabs

我正在使用livevalidation.com的LiveValidation对我的大多数项目进行一些简单而复杂的表单验证。

主要是为了增强用户的过期性。

我做了什么。 - 将无效消息从文本替换为图像 - 当表单被提交 - 并且无效时 - 专注于第一个无效的输入字段 - 当表单被提交 - 并且无效时 - 将红色边框添加到所有无效字段

我正在尝试做什么: - 创建验证表单的函数 - 但仅适用于当前选项卡

我们怎么做'manualy' - 我们可以创建另一个var automaticOnSubmit2 = field4.form.onsubmit;

其中field4始终首先在当前选项卡上输入。 因为我的标签会使用未知数量的标签生成 - 我正在寻找更通用的解决方案。

我做了一些尝试 - 但我对js / jquery的了解非常差 - 所以我失败了。

//尝试1

$(".ui-tabs-panel:not(.ui-tabs-hide) > form") 
  • 这是正确的 - firebug只能找到1 - 打开/当前标签 - 我们要验证的表单位于

    $(".ui-tabs-selected").ready(function() {
    var automaticOnSubmit = $(".ui-tabs-panel:not(.ui-tabs-hide) > form").submit;
     $(".ui-tabs-panel:not(.ui-tabs-hide) > form").submit = function(){
        var valid = automaticOnSubmit();
        if(valid)alert('Form is Valid!');
        else{ 
            $(".LV_invalid_field:first", document.forms).focus();
            }
        return false
    }
    

    });

最诚挚的问候,

彼得

1 个答案:

答案 0 :(得分:0)

<强> Online demo 1
Online demo 2

<强> Zip with both

Livevalidation + jQuery UI标签 解决方案:

$("form").each(function (i) {
    var automaticOnSubmit = this.onsubmit;
    this.onsubmit = function(){
        var valid = automaticOnSubmit();
        if(valid)alert('Form is Valid!');
        else{ 
            $(".LV_invalid_field:first", document.getElementById(this.id)).focus();
        }
        return false
    }
});