Visual studio 2012- 使用 javascript 函数

Visual studio 2012- using javascript function

我试图从 javascript 函数更改背景。颜色发生变化,但立即 return 恢复到原来的颜色。 我做错了什么? 谢谢

 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server">
    <title></title>

    <script type="text/javascript">
        function acheck() {
            document.body.style.backgroundColor = "yellow";

        }
    </script> </head>

<body>
    <form id="form1" runat="server">
    <div><p id="p2" >
        <script>  document.body.style.backgroundColor = "blue";

        </script>

         </p>

     <asp:Button ID="Button1" runat="server" OnClientClick="acheck()" Text="Button" />


    </div>

    </form> </body> </html>

更改您的功能以防止默认行为 - 它将发布表单并重新加载页面。

<script type="text/javascript">
    function acheck(e) 
    {
        document.body.style.backgroundColor = "yellow";
        e.preventDefault();
    } // this bracket also missing in your code
</script>

其他选项是:

e.stopPropagation();
e.stopImmediatePropagation();
return false;

都有不同的目的和结果。

文档位于:https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault

嘿,我希望你已经在服务代码中编写了一个事件...如果不只是从按钮中删除 运行 at server 属性...

我想你是通过 运行 在你的按钮的服务器属性调用一些服务器事件。这是发送 post 返回,这会导致页面重新加载,从而使您的页面变为旧颜色...

为了避免 post 后台页面刷新,你必须在服务器中处理好它或者只是从你的按钮中删除这个 运行 at server 属性(这将导致没有服务器调用你的脚本) ..

希望这能解决您的问题或帮助您解决问题。

(抱歉打字错误。从移动应用程序发送)。

谢谢 我找到了一个简单的解决方案:

<asp:Button ID="Button1" runat="server" OnClientClick="acheck();return false;" Text="Button" />