根据存在的错误选择jQuery选项卡
我正在努力在我的web应用程序中获得一个选项卡,以便在其中出现错误时显示所选内容,因为我有一个跨越这两个选项卡的表单。目前,如果出现错误,用户无法在tabs-2中看到错误消息,并且不知道要修复什么。我有以下代码: HTML: JS:根据存在的错误选择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();
据我所知,如果出现错误消息,您希望将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);
});