0

如果用户单击第二个棕褐色而不在第一个选项卡上提交表单,我想显示一条警报消息,我面临的问题是用户单击选项卡时显示的无限警报消息,这是我编写的代码

 $(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:我创建了一个快速演示,似乎工作得很好。

UPD2:这是另一个只是为了表明一切正常。

于 2012-09-02T06:13:22.700 回答