0

これが私の問題です。私はjquery UIを持っています。タブ内で発生するエラーもありますが、すべてのタブを調べなくても顧客にエラーを見つけてもらいたいです。私のコードがすべきことは、validationerror が表示されている場合、クラス tabs-panel で最も近い LI を探し、その li tabs-1 などに関連付けられている ID を見つけます。次に、それが対応する Href の隣に配置します。エラーが存在するdivを見つけたからです。はい、クレイジーです。appendTo は URL の末尾に感嘆符を追加するので、これが問題のタブであることがわかります。これができるようになったら、後でメッセージを追加します。Im good as gold. ありがとう!

$(document).ready(function(){
 var finderror = $('.validationError:visible').closest('div[class^="ui-tabs-panel"]').attr('id');
    if($('.validationError').is(':visible')) {
        $('li a[@href*=' + finderror + ']').appendTo('!');
    };

 });
4

1 に答える 1

1

ui-tabs-panel クラスが class 属性の値の最初の部分ではない可能性があります。そのセレクターは IMO に特化しすぎていると思います。次のように変更します。

closest('div.ui-tabs-panel')

余談ですが、attr ではなく prop を使用する必要があります。

お役に立てれば。

PS And Floremin は正しいです。AppendTo ではなく、Append である必要があります。

さらに編集:複数の検証エラーが発生する可能性があるため、実際には次のようにそれぞれを実行する必要があります。

$(document).ready(function(){
    $('.validationError:visible').each(function(i, e) {
        var finderror = $(e).closest('div.ui-tabs-panel').prop('id');
        $('li a[@href*=' + finderror + ']').removeClass("validationError").addClass("validationError");
    });
});

感嘆符の代わりに、クラスでそれを行います。


作業コード!

    $('.validationError:visible').each(function(i, e) {
         var finderror = $(e).closest('div#tabs > div').prop('id');
    var errorInf = $('li a[href=#' + finderror + ']');
       $(errorInf).append('<span style="color: red; padding: 2px; font-size: 16px;">!</span>');
    });
});
于 2013-04-04T18:18:17.683 に答える