asp net会覆盖我的onclick属性是什么?

时间:2014-03-21 20:16:48

标签: asp.net webforms

我在表单上有一个按钮。在Page_Load事件期间,我通过后面的代码向按钮添加一个新的onclick属性。但是,当我检查firefox中的按钮时,我的属性不存在,并且被替换为:

onclick =' javascript:WebForm_DoPostBackWithOptions(新的WebForm_PostBackOptions(" button_modal_search","",true," modalSearch","& #34;,false,false))'

这是我运行应用程序之前的标签:

这里是我的代码背后: button_modal_search.Attributes.Add(" onclick"," return showSearchSpinner()")

任何人都知道如何防止该属性被覆盖?

3 个答案:

答案 0 :(得分:0)

ASP.NET确实会覆盖您的onclick属性,但会提供OnClientClick属性以允许您指定自己的客户端行为:

button_modal_search.OnClientClick = "return showSearchSpinner();"

如果该属性的值是常量,您还可以在按钮标记本身中将其指定为属性。

答案 1 :(得分:0)

有一个属性OnClientClickbutton_modal_search.OnClientClick="return showSearchSpinner();"

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.onclientclick%28v=vs.110%29.aspx

答案 2 :(得分:0)

  

button_modal_search.Attributes.Add(" onclick"," return   showSearchSpinner()&#34)

以上代码没问题。如果您不想回发到服务器,只需从javascript函数返回 false 即可。

否则,它会在运行 showSearchSpinner 函数后回发到服务器。

function showSearchSpinner(){
   // do something
   return false;
}

注意:您无需担心ASP.Net取代onclick事件 - onclick='javascript:WebForm_... false, false))'

基本上 showSearchSpinner javascript函数拦截ASP.Net点击事件,当你点击button_modal_search按钮时。