ASP.net按钮onserverclick仅在未定义onclick时有效

protected void btnNext_Click(object sender, EventArgs e) { btnNext.InnerHtml = "CLICK"; }  

这很好,但是当我添加一个onclick事件时:

  

头脑中:

  function checkForm() { if (document.getElementById("").value) { return true; } else { $.jGrowl("Warning!
Please select an item", { sticky: true }); return false; } }

它提交表单,但不会将按钮文本更改为“CLICK”。 虽然表单仍在提交,但只有在未定义onclick()时,文本才会更改为“CLICK”!

你看到这个的原因是因为当你同时在一个按钮上运行你的点击处理程序后跟__doPostBack函数,所以onclick看起来像这样

onclick="return checkForm(); __doPostBack('btnNext','')

因此,您可以看到实际设置要调用的服务器函数的__doPostBack永远不会被调用。 但是,由于按钮的类型为submit,表单仍会发送回服务器。

尝试没有’返回’:
或者如果你想checkForm()控制是否发布 – 请执行以下操作:

 onclick="if (!checkForm()) return;" 

试试这个:

 onclick="javascript:if (!validaForm()) return false;" 

它对我有用。

你可以试试LinkButton

 Next > 

前端

   

后端

  protected void submit_ServerClick(object sender, EventArgs e) { }