javascript - 从代码中添加 javascript 会破坏页面上的验证!怎么处理呢?

标签 javascript asp.net validation ajaxcontroltoolkit

我拥有的是按钮,仅当文本框长度为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/

相关文章:

jquery - 鼠标悬停时更改热点区域的颜色

c# - SQL Server 查询不在 asp.net 中返回任何结果

ruby-on-rails - 使用嵌套路由进行渲染时出错

javascript - 选择第一个选择框值后填充第二个选择框,如何在脚本中选择要编辑的值

javascript - Prestashop 错误 baseUri

asp.net - 让 Visual Studio 2010 Profiler 与 ASP.Net 一起工作?

PHP:如何更改 SQL 中验证的值?

javascript - 将数组序列化和反序列化到文件 - Node JS

javascript - ExtJS - 编辑行调用函数时更新按钮

java - 具有从数据库加载的字段选项并进行验证的表单