【问题标题】:jquery to set dotnet form visible=true and falsejquery 设置 dotnet form visible=true 和 false
【发布时间】:2011-10-05 03:20:48
【问题描述】:

我有一个选项卡式登录页面,我想在每个选项卡上托管一个表单,但从它们背后的代码来看,它们位于一个页面上。

这意味着有两种形式。

示例:

<nav id="secondary">
<ul>
<li id="current"><a href="#login">Login</a></li>
<li><a href="#forgot">Forgot Password</a></li>
</ul>
</nav>


<div id="login" class="tab">
<br /><br />
<form runat="server" visible="true" class="frmControl">
</form>
</div>
<div id="forgot" class="tab">
<br /><br />
<form runat="server" visible="false" class="frmControl"></form>
</div>

然后我有以下 jquery 在登录 div 和忘记 div 之间切换

$(".tab").hide();

if ($("nav#secondary ul li.current").length < 1) {
    $("nav#secondary ul li:first-child").addClass("current");
}

var link = $("nav#secondary ul li.current a").attr("href");
$(link).show();

$("nav#secondary ul li a").click(function () {
    if (!$(this).hasClass("current")) {
        $("nav#secondary ul li").removeClass("current");
        $(this).parent().addClass("current");
        $(".tab").hide();
        $(".frmControl").attr("Visible", "false");
        var link = $(this).attr("href");
        $(this).attr("Visible", "true");
        $(link).show();
        initBackground();
    }
    return false;
});

它无法正常工作,因为它只是将 '.frmControl' 类设置为 visible=false。但是当我重新激活选项卡时,它不会再次将活动选项卡表单设置为 true,并将非活动选项卡表单设置为 false。

对不起,如果我没有正确解释这一点。

-RD

【问题讨论】:

  • 您不能有多个表单是runat="server",并且一个表单没有客户端Visible 属性,至少有一个对您有好处。您需要使用hide/show

标签: c# jquery jquery-ui jquery-ui-tabs


【解决方案1】:

您不想设置 $(".frmControl").attr("Visible", "false");,因为您已经使用 $(".tab").hide(); 隐藏了选项卡

$(".tab").hide();

if ($("nav#secondary ul li.current").length < 1) {
    $("nav#secondary ul li:first-child").addClass("current");
}

var link = $("nav#secondary ul li.current a").attr("href");
$(link).show();

$("nav#secondary ul li a").click(function () {
    if (!$(this).hasClass("current")) {
        $("nav#secondary ul li").removeClass("current");
        $(this).parent().addClass("current");
        $(".tab").hide();
      //  $(".frmControl").attr("Visible", "false");// remove this line
        var link = $(this).attr("href");
        $(this).attr("Visible", "true");
        $(link).show();
        initBackground();
    }
    return false;
});

这是工作示例http://jsfiddle.net/VGRZS/

【讨论】:

  • 这不起作用,因为当我点击登录时,包括表单在内的登录 div 应该是可见的——但是忘记 div 和表单不应该是可见的,反之亦然。我刚刚意识到表单控件是在服务器上运行的,这意味着我需要更改开关以在服务器端也触发可见 = 真 / 可见 = 假。我会在尝试一些想法后报告。谢谢!
猜你喜欢
  • 1970-01-01
  • 2015-11-21
  • 1970-01-01
  • 1970-01-01
  • 2022-12-01
  • 2019-05-29
  • 1970-01-01
  • 1970-01-01
  • 2017-05-06
相关资源
最近更新 更多