0

ユーザーが最初のタブでフォームを送信せずに2番目の日焼けをクリックした場合に警告メッセージを表示したい、ユーザーがタブをクリックしたときに表示される無限の警告メッセージに直面する問題、ここに私が書いたコードがあります

 $(function() {
    $('#tabs').tabs({
        selected:<?php echo $param ?>,

        select: function(e, ui) {

            var thistab = ui;
            runMethod();

        }

    });

});
function runMethod(){
    if( $.trim($("#generalImportNo").text()) == "")
    {
        alert("You should fill all main information first.")                     
        $('#tabs').tabs({selected:1 });

    }
}

使ってみたstopPropagationのですが、どうしたら無限イベントが発生しないようにできますか?!

4

1 に答える 1

1

次のようなことをしてみませんか。

...
select: function(e, ui) {
   var thistab = ui;
   return runMethod();
}
...
function runMethod(){
    if( $.trim($("#generalImportNo").text()) == "")
    {
       alert("You should fill all main information first.")                     
       return false;
    }
    return true;
}

selectイベントが返された場合false、タブは選択されません。今はテストできませんが、それは私がずっと前に行ったことです。また $('#tabs').tabs({ disabled: [1, 2, 3], ... });、ユーザーが使用できないタブをクリックするのを防ぐことができるため、非常に便利です。コードを使用してタブを有効にするには$('#tabs').tabs('enable', tabIndexToEnable);

UPD : クイックDEMOを作成しましたが、問題なく動作するようです。

UPD2 :これは、すべてが正常に機能することを示すための別のものです。

于 2012-09-02T06:13:22.700 に答える