2011-05-17 24 views
1

我相当新的ASP.NET,但我想验证一个表单。我有验证工作,但我想改变它的显示方式。我使用RequiredFieldValidator控件,该控件生成一个带有ErrorMessage属性的span标签。根据我如何设置的一些属性,跨度标签隐藏或内联CSS显示(显示:无,能见度:隐藏,等等)。而不具备验证返回的跨度,我想有TextBox控件变化的基础上,验证的结果的CssClass。我不想在我的标记中的任何位置使用验证相关的跨度,即使显示:无。如何更改RequiredFieldValidator控件返回的内容?

这可能吗?我从哪里开始做到这一点?

谢谢!

回答

2

你不能改变的RequiredFieldValidator更新就像一个文本框的另一个控件,如果有一个网页上只会更新本身或的ValidationSummary。

2个选项,你必须让你的期望的输出是:

  1. 使用CustomValidator control
  2. Create your own validation server control是能够更新的CSS类的文本框的

虽然最有可能没有的这些选项将为您提供您正在寻找的“纯”HTML代码,而无需任何额外的span或div标签,只要您愿意投入时间编写JavaScript(或jQuery),它们就会满足您的其他要求。但是,考虑到可用的替代方案(大多数客户端只通过某个框架进行验证),您最好坚持使用ASP.NET验证,因为它可以强制在服务器端进行验证。

第二个选项更具挑战性,但服务器控件可以在项目中的任何页面上使用,或者包装在DLL中以部署在多个项目中。使用CustomValidator时,如果您想复制多个控件上的功能,并且难以维护,则可以进行一些复制和粘贴。

有关如何使用jQuery和自定义服务器控件来获取所需结果的真实示例,请转至Folding Chair Depot的结帐页面(您需要先将商品添加到购物车以获取那里)。当您提交表单而未填写表单时,将为无效文本框分配新的CSS类,这些类会更改其背景颜色。但是,因为它们是服务器控件,所以无论JavaScript是否启用,功能都将起作用。

+0

谢谢! Folding Chair Depot示例几乎就是我想要实现的。 – 2011-05-19 16:07:25

0

它是更多的工作,但它是可能的的CustomValidator。所以你通过验证js函数有更多的控制权。

相关问题