【发布时间】:2015-10-12 08:19:48
【问题描述】:
我包含一个选项卡并在用户单击选项卡时显示相应的内容。这是选项卡和内容的代码。
HTML
<ul class="tabs" id="tab">
<li rel="tab1"><a id="t1" href="#" title="Login via 2FA" class="<?php echo $FAActive; ?>" onclick="CngClass(this);">Login via 2FA</a></li>
<?php if ($useSMS == true) { ?>
<li rel="tab2"><a id="t2" href="#" title="Login via SMS" class="<?php echo $SMSActive; ?>" onclick="CngClass(this);">Login via SMS</a></li>
<?php } ?>
</ul>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
<div id="tab1" class="tab_content">
<div class="form_settings">
<h3>Secure Login via 2FA</h3>
<p>Please use your 2FA device (mobile phone or computer).
<p>Enter the security code: <input type="text" name="otp" value="" />
<p><input class="submit" type="submit" name="2FAlogin" value="Enter" /></p>
</div>
</div><!-- #tab1 -->
<div id="tab2" class="tab_content">
<div class="form_settings">
<h3>Secure ID from SMS</h3>
<p>Please click on the button "Resend SMS".
<p>The system will send SMS-OTP to your mobile number (<?php echo $MobileNumber; ?>).
<p style="margin-bottom: 15px;">SMS-OTP Code: <input type="text" name="passcode" value="" /></p>
<p>
<input class="submit" type="submit" name="SMSlogin" value="Sign In" />
<input class="submit" type="submit" name="Resend" value="Resend SMS" />
</p>
</div>
</div><!-- #tab2 -->
</form>
Javacsript
<script type="text/javascript" src="modernizr-1.5.min.js"></script>
<script type="text/javascript" src="jquery.js"></script><script type="text/javascript">
$(document).ready(function () {
$(".tab_content").hide();
$(".tab_content:first").show();
$("ul.tabs li").click(function () {
$("ul.tabs li").removeClass("active");
$(this).addClass("active");
$(".tab_content").hide();
var activeTab = $(this).attr("rel");
$("#" + activeTab).fadeIn();
});
});
function CngClass(obj) {
var list = document.getElementById("tab").getElementsByTagName('a');
for (i = 0; i < list.length; i++)
{
list[i].className = '';
}
obj.className = 'active';
}
/*]]>*/
</script>
PHP
if (isset($_POST['Resend'])) {
$FAActive = "";
$SMSActive = "active";
}
if (isset($_POST['2FAlogin'])) {
$FAActive = "active";
$SMSActive = "";
}
我需要根据这个$FAActive,$SMSActive来显示内容。每当我刷新页面时,默认情况下都会显示其选项卡内容。我想将其更改为,因为$FAActive 处于活动状态,则选定的选项卡将为 tab1,$SMSActive 的选定选项卡将为 tab2。
我把这段代码放在 javascript <?php if(!empty($FAActive)) { ?> $(".tab_content:first").show(); <?php } else { ?> $(".tab_content:second").show(); <?php } ?> 中,但它不会显示任何内容。任何人请帮我解决这个问题。
【问题讨论】:
-
$(".tab_content:second")在 jQuery 中不存在,正确的语法是使用 :nth-child() :$(".tab_content:nth-child(2)")。 -
CngClass()中有一个for循环
标签: javascript php jquery html tabs