【发布时间】:2021-10-26 20:14:27
【问题描述】:
这是一个基于 c# asp.net 的环境,在呈现的页面上运行 [webmethod] 代码隐藏和 PageMethods 以调用代码隐藏。
我使用 asp:类型标签、文本框、按钮和验证器。我有几个按钮在流程的不同点变得可见。表单上还有字段验证器 (asp:RequiredFieldValidator),它在按下 Enter 键或单击“DefaultButton”时触发。我希望进行验证,但是我希望更改 DefaultButton 以便永远不会再次执行触发的函数。也就是说,如果按下回车键,则在任何时候都会触发 DefaultButton(以及相关的 OnClientClick 事件)。我希望更改 DefaultButton 使用 javascript 的内容。
表格上是:
<form id="form1" runat="server" DefaultButton="btnCreateAccount">
.
.
.
<asp:Button ID="btnCreateAccount" runat="server" Text="Signup" style="display: inherit;" OnClientClick="ValidEmailTest(); return false;"/>
<asp:Button ID="btnVerifyAccount" runat="server" Text="Verify Mail Account" style="display: none;" OnClientClick="TestSetup(); return false;"/>
<asp:Button ID="btnValidate" runat="server" Text="Check Verification Code" style="display: none;" OnClientClick="Validation(); return false;"/>
我相信,如果我可以将 DefaultButton 的值更改为不同的按钮,那么当填充新公开的字段并按下 Enter 键时,将验证字段并执行该按钮的“OnClientClick”操作。我正在寻找“DefaultButton”的值,或者它可以在哪里修改,所以我知道可以改变什么。
我试过了:
xyz = document.getElementById('<%= form1.ClientID %>')..getdefaultbutton;
alert ("Default Button is: "+ xyz);
结果:“默认按钮为:未定义”
xyz = document.getElementById('<%= form1.ClientID %>').getAttribute("DefaultButton");
alert ("Default Button is: "+ xyz);
结果:“默认按钮为:null”
var xyz = document.getElementById('<%= form1.ClientID %>').getAttributeNames();
alert ("Attributes are: "+ xyz);
结果:“属性为:method,action,onkeypress,id”
我不想要帖子或回电,因为所有内容都作为在代码隐藏异步中运行的页面方法运行。并将结果传递到页面。任何调用或回发都会刷新页面并重置页面显示的内容和用户输入的值,或者系统已返回。
建议?
【问题讨论】:
-
将类型更改为“提交”?
标签: javascript c# html asp.net