2011-02-14 70 views
0

我使用livevalidation.com的LiveValidation进行一些简单的,更复杂的表单验证上我的大部分项目的一页。LiveValidation + UI选项卡 - 多验证

主要是为了提升用户expirence。

我做了什么。 - 替换从文本无效消息图像 - 当表格submited - 并且是无效的 - 专注于第一无效输入字段 - 当表格submited - 并且是无效的 - 加红色边框全部无效领域

我想要做的事: - 创造出被验证表单功能 - 但仅在当前选项卡中

我们如何能做到这一点“manualy” - 我们可以创建另一个变种automaticOnSubmit2 = field4.form。的onsubmit;

如果字段4始终是当前选项卡上的第一个输入。 因为我的选项卡会生成未知数量的选项卡 - 我正在寻找更通用的解决方案。

我做了一些尝试 - 但我的js的知识/ jQuery是非常贫穷的 - 所以我失败了。

//尝试1

$(".ui-tabs-panel:not(.ui-tabs-hide) > form") 
  • 这是正确的 - 萤火可以发现,只有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 
    } 
    

    } );

最好的问候,

彼得

回答

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 
    } 
});