停止ui选项卡的无限事件处理

时间:2012-09-02 06:06:29

标签: jquery

如果用户点击第二个棕褐色而没有在第一个标签页上提交表单,我想显示一条警告消息,这是我在用户点击标签时显示的无限警报消息的问题, 这是我写的代码

 $(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但它不起作用,我怎样才能防止发生无限事件?!

1 个答案:

答案 0 :(得分: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 :这是另一个one,只是为了表明一切正常。