我拥有的是按钮,仅当文本框长度为8时才应打开另一个页面。必须从代码中添加Javascript,因为它不简单地调用bla.aspx,它更像是bla.aspx?id=4&code=234等等等...
我在服务器端有这个代码
button.Attributes.Add("onclick","javascript:window.open(bla.aspx)");
在客户端我有
<asp:TextBox ID="policyNumberTxt" runat="server" MaxLength="8" CausesValidation="true"></asp:TextBox>
<asp:RegularExpressionValidator ID="policyNumberTxtRev" runat="server"
ControlToValidate="policyNumberTxt" ErrorMessage="Length must be 8."
ValidationExpression="{.{8}.}" ValidationGroup="bla" Display="Dynamic"></asp:RegularExpressionValidator>
<asp:Button ID="printBtn" CssClass="button" Text="Print" runat="server" CausesValidation="true" ValidationGroup="bla" />
发生的情况是,当我单击按钮时,页面 bla.aspx 打开,甚至触发回发。验证器正在显示消息,但页面已打开并触发了回发。
如何处理这个问题?验证已损坏...
谢谢..
最佳答案
要防止提交表单,请添加“return false;”
button.Attributes.Add("onclick", "window.open('bla.aspx'); return false;")
但这也会阻止表单进行回发!
请注意,传递的 url 应该用引号引起来。 而且您不需要像“Pointy”所说的“javascript:”前缀
我认为验证正则表达式应该更严格,只允许这样的字母和数字
ValidationExpression="[A-Za-z0-9]{8}"
关于javascript - 从代码中添加 javascript 会破坏页面上的验证!怎么处理呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4172983/