为什么 ASP.NETLinkButton
控件具有OnClientClick
属性并通过在 HTML 中设置Enabled="false"
仍然呈现onclick
事件处理程序而禁用,而Button
控件却没有?
这似乎违反直觉。由于在浏览器中不能真正禁用锚点,因此如果在服务器端已将其设置为禁用,则不附加 onclick 事件(和 href 属性)更有意义。
为什么 ASP.NETLinkButton
控件具有OnClientClick
属性并通过在 HTML 中设置Enabled="false"
仍然呈现onclick
事件处理程序而禁用,而Button
控件却没有?
这似乎违反直觉。由于在浏览器中不能真正禁用锚点,因此如果在服务器端已将其设置为禁用,则不附加 onclick 事件(和 href 属性)更有意义。
好吧,我同意它没有太多用途,但是如果不使用 asp.net 中内置的众多方法之一更改链接按钮的呈现方式,那么您实际上无能为力。除非您想有条件地处理客户端代码中的点击并检查元素属性。这只是它当前实现的方式,因此当您需要可以禁用的按钮功能时,最好完全远离链接按钮或锚点。
这与asp.net 真的没什么关系。
即使在禁用时,超链接按钮仍会触发 onclick 事件。底线:融入 HTML。(输入标签在禁用时不会触发。)
<a href="javascript:alert('Hello!');" disabled="disabled">Click Me!</a>