如果显示 errorLable 如何选择 jquery 选项卡

发布于 2024-12-06 14:50:39 字数 1093 浏览 0 评论 0原文

我准备将 jquery UI 选项卡应用到我的应用程序,并且我将在其上应用 jquery 验证类。我的问题是,如果我在某些 div 中出现错误,则应选择该 div 并在单击“保存”按钮时向用户显示错误。

我尝试过

 $('#tabs > div').each(function(i){
                   if($('.errortd', this).not(':hidden').length>0){
                                $("#tabs").tabs('select', i);                                              

                      });

               });

但我没有运气任何帮助谢谢很多

我的选项卡div

    <div id="tabs">
           <ul>
            <li><a href="#editEmployeeDIV"><?php echo __("View/Edit employees") ?></a></li>
            <li><a href="#addEmployeeDIV"><?php echo __("Assign new employees") ?></a></li>
           </ul>
    <div id="editEmployeeDIV">
    </div>
    <div id="editEmployeeDIV">
    </div> 
</div>

我的错误标签有类errortd

<label for="txtAmount_146" generated="true" class="errortd" style="display: none; ">This field is required.</label>

im up to apply jquery UI tabs to my application and im going to apply jquery validation class on that. my problem is if i got error in some div that div should selected and display the error to user when click on the save button .

i tried

 $('#tabs > div').each(function(i){
                   if($('.errortd', this).not(':hidden').length>0){
                                $("#tabs").tabs('select', i);                                              

                      });

               });

But i have no luck any help thanks lot

my tabs div

    <div id="tabs">
           <ul>
            <li><a href="#editEmployeeDIV"><?php echo __("View/Edit employees") ?></a></li>
            <li><a href="#addEmployeeDIV"><?php echo __("Assign new employees") ?></a></li>
           </ul>
    <div id="editEmployeeDIV">
    </div>
    <div id="editEmployeeDIV">
    </div> 
</div>

my error lables having class errortd

<label for="txtAmount_146" generated="true" class="errortd" style="display: none; ">This field is required.</label>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我也只是我 2024-12-13 14:50:39

你有一些问题。

第一个是代码中的杂散 );

if($('.errortd', this).not(':hidden').length>0){
    $("#tabs").tabs('select', i);                                              
}); // <------ Right here

那么您就在不应该使用的时候使用了 :hidden 。来自精细手册

由于多种原因,元素可以被视为隐藏:
[...]

  • 祖先元素被隐藏,因此该元素不会显示在页面上。

这意味着如果 位于非当前选项卡中,则始终将其视为隐藏。

你可以这样做:

var $shown = $(this).find('.errortd').filter(function() {
    var dpy = $(this).css('display');
    return !dpy || dpy != 'none';
});
if($shown.length > 0)
    $("#tabs").tabs('select', i);

演示: http://jsfiddle.net/ambigously/agrCe/

或者,向 元素添加一个类来隐藏它们,而不是手动隐藏它们。你有一些像这样的CSS:

.no-error {
    display: none;
}

然后:

if($(this).find('.errortd:not(.no-error)').length > 0)
    $("#tabs").tabs('select', i);

演示: http://jsfiddle.net/ambigously/Z4D2A/

You have a few problems.

The first is a stray ); in your code:

if($('.errortd', this).not(':hidden').length>0){
    $("#tabs").tabs('select', i);                                              
}); // <------ Right here

Then you're using :hidden when you shouldn't be. From the fine manual:

Elements can be considered hidden for several reasons:
[...]

  • An ancestor element is hidden, so the element is not shown on the page.

That means that the <label> will always be considered hidden if it is in a non-current tab.

You could do something like this:

var $shown = $(this).find('.errortd').filter(function() {
    var dpy = $(this).css('display');
    return !dpy || dpy != 'none';
});
if($shown.length > 0)
    $("#tabs").tabs('select', i);

Demo: http://jsfiddle.net/ambiguous/agrCe/

Or, add a class to the <label> elements that hides them instead of manually hiding them. You have a bit of CSS like this:

.no-error {
    display: none;
}

And then:

if($(this).find('.errortd:not(.no-error)').length > 0)
    $("#tabs").tabs('select', i);

Demo: http://jsfiddle.net/ambiguous/Z4D2A/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文