【问题标题】:Jquery unexpected result in ASP.NET Web FormASP.NET Web 窗体中的 Jquery 意外结果
【发布时间】:2018-07-23 16:41:09
【问题描述】:

我正在使用 VS 2017 C# webforms 应用程序并拥有以下代码:

这个简单的代码尝试将 TextBoxes 的背景更改为黄色。

单击按钮后,文本框的背景会短暂变为黄色,但随后立即重置为白色。

我注意到在第二次调用 page_load 事件后转换为白色。我需要您就第二页加载如何影响 jQuery 以及如何解决上述问题提供反馈。

<!DOCTYPE html>
<script src="JQuery/jquery-3.3.1.js"></script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>

    <script>
        $("document").ready(function () {
            $("#g").click(function () {
                alert("test");
                $(".small,.big").css("background-color", "yellow");
            });
        });

    </script>

    <style>
        .small
        {
            font-style:italic;
        }

         .big
        {
            font-style:italic;
        }

    </style>

    </head>
    <body>
        <form id="form1" runat="server">
        <div>
        <asp:TextBox runat="server"  CssClass="big">ABC</asp:TextBox>        
            <br />
              <asp:TextBox runat="server" Font-Bold="true" CssClass="small big" >ABC</asp:TextBox>
            <br />
              <input type="text" class="big"   value="lll"/>
            <br />
            <asp:Button runat="server" ID="g" Text="click" />
        </div>
        </form>
    </body>
    </html>

【问题讨论】:

  • 你能解释一下你所说的“第二页加载”是什么意思吗?每当页面加载发生时,您在先前元素上放置的任何内联样式都会被破坏,因为加载会替换所有内容。
  • 程序运行页面加载时。单击按钮后,第二次触发页面加载。
  • 如果您希望类更改在回发之间保持不变,您需要从后面的代码管理类更改。
  • 对,所以任何内联样式都会被破坏,除非你重新运行脚本逻辑来设置它。
  • 好的,谢谢。所以你们建议我从后面的代码中使用像 RegisterClientScriptBlock 这样的方法?

标签: jquery asp.net


【解决方案1】:

我在此处提供有关问题中定义的行为的信息,以供将来参考。

问题是为什么 Textbox 会短暂地改变颜色然后又变白。

原因:当用户单击按钮(ASP 按钮)时。触发文档就绪函数并触发单击事件,该事件验证文本框并更改颜色。

但是由于我们有一个 ASP 按钮,这会导致回发再次触发文档就绪事件,但很明显,这次点击事件没有触发,因此验证没有完成。

如果您需要使用 ASP 按钮,您可以从后面的代码强制验证(正如本问题 cmets 中的专家所解释的那样),或者在我的情况下,我只是将 Juquery 代码移到正文的结束标记之前,@ 987654321@(老式的 javascript 方式)并且有效。

如果文本框的EnableViewstate属性可以保留CSS背景颜色就好了,但显然不能。

【讨论】:

    猜你喜欢
    • 2012-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-11
    • 2012-09-10
    • 2012-07-15
    • 1970-01-01
    相关资源
    最近更新 更多