我写这个答案只是因为我在 ASP.NET WebForms 中使用 html 按钮,但我找不到解决方案,为什么要用工作示例替换我的代码。这是为什么它不起作用的解决方案。希望它能帮助你理解这个问题,就像检查它对我有帮助一样。这是我的第一篇文章,对于风格非常抱歉。
<button type="button" id="buttonAddOrEdit" class="btn btn-success" runat="server" onclick="return myValidate()" onserverclick="buttonAddOrEdit_ServerClick">Zapisz</button>
和javascript函数:
function myValidation() {
if (validator.form()) {
//Project logic
return true;
}
else return false;
};
正确验证后使用客户端单击不会在绑定到按钮的服务器端触发事件。提到的解决方案将一段代码更改为:
onclick="if(!myValidation()) 返回;"
由于创建了使用 onserverclick 在页面上呈现的 html 的方式而工作。html 按钮上的 Onserverclick 正在被 javascript 中的 __doPostBack 方法替换。在客户端呈现的 html 按钮的完整代码如下所示:
<button onclick="return myValidation(); __doPostBack('ctl00$PortalContent$buttonAddOrEdit','')" id="ctl00_PortalContent_buttonAddOrEdit" type="button" class="btn btn-success">Zapisz</button> Błąd składni
在用 if 语句替换它之后。
<button onclick="if(!myValidation()) return; __doPostBack('ctl00$PortalContent$buttonAddOrEdit','')" id="ctl00_PortalContent_buttonAddOrEdit" type="button" class="btn btn-success">Zapisz</button>
使用 return myValidate(); 不会触发事件,因为它在 __doPostBack 之前返回。
以下代码将允许您在必要时向按钮添加一些其他代码,并且不会导致任何问题。