【问题标题】:Using javascript hide()/show() in vb.net在 vb.net 中使用 javascript hide()/show()
【发布时间】:2014-07-29 08:28:05
【问题描述】:

我正在使用 vb.net 创建一个网站。我想要做的不是页面上有多个表单,只有多个表单并在按钮单击时隐藏/显示它们,因此实际的 url 不会发生变化,只是显示页面。 所以我使用 vb.net 和 javascript 来实现。

我的 vb.aspx 页面:

<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">

    <script src="Scripts/jquery-1.11.1.js" type="text/javascript"></script>
    <script language="javascript" type="text/javascript">
<!--

    function show_ata() {
        $('#dmi').hide();
        $('#ata').show("slow");

    }
    function back() {
        $('#ata').hide();
        $('#dmi').show("slow");
    }

// -->
    </script>
    </asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="BodyContent" runat="server">
 <div id="ata" runat="server" >
<p>ATA</p>
<asp:Button runat="server" ID="Button1" OnClientClick="return back()" Text="Back to DMI" CausesValidation="false" />
</div>
<div id="dmi" runat="server">
<p>DMI</p>
<asp:Button runat="server" ID="btnatadetails" OnClientClick="return show_ata()" Text="Go to ATA" CausesValidation="false" />
</div>
</asp:Content>

这就是我的代码,我在.aspx.vb页面上也有一些代码,但它只是检查用户是否登录,与页面显示无关,所以我不会在这里发布.

我的问题 我的问题是,由于某种原因,单击操作上的按钮仅将给定的 div 隐藏 1 秒,然后再次显示,我的意图是隐藏它并保持隐藏状态。

任何想法我做错了什么?

解决方案 你们中的一些人建议我应该将我的 javascript 代码包装在文档就绪函数中,这可能是正确的,但不能解决我的问题。 解决方案是为按钮单击编写 vb 代码,如下所示:

Private Sub btnatadetails_Click(sender As Object, e As System.EventArgs) Handles btnatadetails.Click
        dmi.Visible = False
        ata.Visible = True
End Sub

或者不使用ASP:Button而使用html按钮&lt;input type=button&gt;,因为asp:button在服务器上运行,每次点击页面都会重新加载并恢复到原来的状态。

感谢大家的帮助。

【问题讨论】:

    标签: javascript jquery html asp.net vb.net


    【解决方案1】:

    点击动作只隐藏给定的 div 1 秒,然后再次显示

    因为它在文档准备好之前调用,而在准备好之后它显示它是原始的。

    解决方案: 将您的代码包装在就绪处理程序中:

    $(document).ready(function(){
    //your code here
    });
    

    【讨论】:

    • 我已经做到了,现在它根本没有隐藏它,我还注意到我的页面在按钮单击后重新加载
    • 我在按钮中添加了一个属性:UseSubmitBehavior="false",现在我在开发人员工具控制台中收到错误:Uncaught ReferenceError: show_ata is not defined
    • 我已经用解决方案更新了主帖,谢谢帮助
    【解决方案2】:

    您只需添加 $(document).ready(function(){ ... } 即可使用 jquery

    <script language="javascript" type="text/javascript">
     <!--
    $(document).ready(function(){
     function show_ata() {
         $('#dmi').hide();
         $('#ata').show("slow");
    
     }
     function back() {
         $('#ata').hide();
         $('#dmi').show("slow");
     }
    }
    // -->
    </script>
    

    【讨论】:

    • 我已经这样做了,现在它根本没有隐藏它,我还注意到我的页面在按钮单击后重新加载,除了这个 javascript 之外没有分配其他功能跨度>
    • 我在按钮中添加了一个属性:UseSubmitBehavior="false",现在我在开发人员工具控制台中收到错误:Uncaught ReferenceError: show_ata is not defined
    • 我已经用解决方案更新了主帖,谢谢帮助
    【解决方案3】:

    解决方案 你们中的一些人建议我应该将我的 javascript 代码包装在文档就绪函数中,这可能是正确的,但不能解决我的问题。解决方案是为按钮单击编写 vb 代码,如下所示:

    Private Sub btnatadetails_Click(sender As Object, e As System.EventArgs) Handles btnatadetails.Click
        dmi.Visible = False
        ata.Visible = True
    

    结束子 或者不使用 ASP:Button 并使用 html 按钮,因为 asp:button 在服务器上运行,每次点击页面都会重新加载并恢复到原始状态。

    感谢大家的帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多