如果用户点击第二个棕褐色而没有在第一个标签页上提交表单,我想显示一条警告消息,这是我在用户点击标签时显示的无限警报消息的问题, 这是我写的代码
$(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
但它不起作用,我怎样才能防止发生无限事件?!
答案 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,只是为了表明一切正常。