Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
根据存在的错误选择jQuery选项卡_Jquery_Error Handling_Jquery Ui Tabs - Fatal编程技术网

根据存在的错误选择jQuery选项卡

根据存在的错误选择jQuery选项卡,jquery,error-handling,jquery-ui-tabs,Jquery,Error Handling,Jquery Ui Tabs,我正在努力在我的web应用程序中获得一个选项卡,以便在其中出现错误时显示所选内容,因为我有一个跨越这两个选项卡的表单。目前,如果出现错误,用户无法在tabs-2中看到错误消息,并且不知道要修复什么。我有以下代码: HTML: JS: 据我所知,如果出现错误消息,您希望将tab设置为active。如果这是你想要的,请检查这个,如果我还缺少什么,请告诉我 var $j = jQuery.noConflict(); var $tabs = $j( '#tabs' ).tabs();

我正在努力在我的web应用程序中获得一个选项卡,以便在其中出现错误时显示所选内容,因为我有一个跨越这两个选项卡的表单。目前,如果出现错误,用户无法在tabs-2中看到错误消息,并且不知道要修复什么。我有以下代码:

HTML:

JS:


据我所知,如果出现错误消息,您希望将tab设置为active。如果这是你想要的,请检查这个,如果我还缺少什么,请告诉我

var $j = jQuery.noConflict(); 
var $tabs = $j( '#tabs' ).tabs();       

$j("button").click(function(){
    var $errorSpan = $j("span").filter(function(index){        
        if($j(this).hasClass("error-message"))
        return $j(this);
    });

    var errorTabIndex = $j(".tab-content").index($errorSpan.closest(".tab-content"));

    console.log(errorTabIndex);

    // for jQuery < 1.10
    $tabs.tabs({
        selected: errorTabIndex
    });

    //for jQuery >= 1.10
    $tabs.tabs( "option", "active", errorTabIndex);

});
我已经添加了处理程序来检查按钮点击时的错误div。您可能希望将其设置为表单提交或其他形式

更新


所做的是在span.error-message上应用过滤器。如果找到任何,则返回该跨度。然后,我们可以找到包含错误消息的选项卡并将其设置为活动状态。

查找是否存在错误的逻辑是什么?@PalashMondal使用此应用程序时,页面将在提交时刷新,此时未看到错误,因此用户不知道为什么无法继续,因为表单字段旁边的错误消息在其中tabs-2您是否尝试过这个$jthis.find'.error message'.length>0而不是$jthis.find'ETError.error message'.length<0?@PalashMondal yea我也尝试过这个$jthis.find'ETError'.length<0不确定我遗漏了什么您尝试过length>0或length<0吗?因为,如果有错误消息,意味着长度将大于0…这太棒了!非常感谢。我还发现这篇文章显示select是deprecated@urbanrunic是 啊谢谢你告诉我我不知道。我将很快用这两种方法更新答案,以供将来的访问者使用。
<script>
  var $j = jQuery.noConflict();

  $j(function() {
    $j( '#tabs' ).tabs();
    $j('#tabs > div').each(function(i) {
      if($j(this).find('#ETError.error-message').length < 0)
        $j('#tabs').tabs('select', i);
    });
  });
</script>
var $j = jQuery.noConflict(); 
var $tabs = $j( '#tabs' ).tabs();       

$j("button").click(function(){
    var $errorSpan = $j("span").filter(function(index){        
        if($j(this).hasClass("error-message"))
        return $j(this);
    });

    var errorTabIndex = $j(".tab-content").index($errorSpan.closest(".tab-content"));

    console.log(errorTabIndex);

    // for jQuery < 1.10
    $tabs.tabs({
        selected: errorTabIndex
    });

    //for jQuery >= 1.10
    $tabs.tabs( "option", "active", errorTabIndex);

});