是否可以使用Javascript禁用服务器端按钮的提交行为

时间:2009-05-21 11:20:27

标签: asp.net javascript

是否可以使用Javascript禁用服务器端按钮的提交行为? 注意:我不想禁用该按钮,用户将单击该按钮,但它不会从服务器提交/获取任何值。

情形:

 <asp:Button ID="Button1" runat="server" Text="Submit"  onclick="Button1_Click"  OnClientClick="Check()" />

的javascript:

function Check() 
{
  var res = confirm(" Are u sure whatYou have selected ")
  if (res) 
  {
    alert("yes");
  }
  else {
    //Here I need to disable the submit behavoiur                        
  }
 }
}
}

7 个答案:

答案 0 :(得分:9)

您需要确保在标记中将UseSubmitBehavior设置为false,然后您需要确保在调用回发javascript之前返回false。


编辑:

你应该返回函数的值,然后在函数retrun中返回true如果你想要回发,如果你不想返回false,则返回false。

<asp:Button ID="Button1" runat="server" Text="Submit"  onclick="Button1_Click"  
  OnClientClick="return Check();" UseSubmitBehavior="false" />

使用Javascript:

function Check()
{
     return confirm(" Are u sure whatYou have selected ");
}

答案 1 :(得分:3)

确定:从提交按钮的点击处理程序返回false。

答案 2 :(得分:1)

<input type='submit' onclick='return false;' />

这样的事情(如果在asp.net中没有以不同的方式完成。

答案 3 :(得分:0)

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

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Untitled Page</title>
    <script>
    function dostuff() {
    alert('hello');
    }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <% =DateTime.Now.ToString() %>
        <asp:Button ID="Mybutton" runat="server" UseSubmitBehavior="false" Text="Click"
        OnClientClick="dostuff(); return false;" />
    </div>
    </form>
</body>
</html>

答案 4 :(得分:0)

我不推荐其他方法,因为它们存在两个问题:

  1. Javascript不应嵌入HTML中。这只是一种糟糕的形式,现在是一种神秘的做法。关于此,有很多讨论。
  2. 点击提交按钮不是提交表单的唯一方式。如果用户点击输入按钮,您仍然会遇到问题,因为根本不会触发onclick处理程序。
  3. 在您的情况下,您只需要在else块中包含以下内容:

    document.getElementById("YourFormId").onsubmit = function() { return false; }
    

    因此,事件在您的表单上而不是您的按钮,这是一个onsubmit事件。

答案 5 :(得分:0)

只是说返回false,在客户端点击事件中执行,这不会继续提交(或在asp.net中的__doPostBack())

答案 6 :(得分:0)

对我来说

OnClientClick =“if(!confirm('你确定吗?'))返回false;”

而不是

1-OnClientClick =“返回确认('你确定吗?'))”

2-OnClientClick =“确认('你确定吗?'))”

解决了问题

<asp:Button UseSubmitBehavior="false" OnClientClick="if (!confirm('are you sure?')) return false;" >