客户端验证会导致在ASP.NET中显示错误的数据

时间:2011-04-05 06:10:24

标签: javascript asp.net validation webforms

我真的无法为这个问题提出更好的描述性标题..但是情况如下:

我有一个包含多个不同输入控件的表单..我有两种类型的验证:

  1. 此类型确保用户输入不违反我的应用程序的约束(必需,最大长度,regExp)..这是在客户端使用ASP.NET验证控件完成的..并且它是强制执行的a server side validation

  2. 此类型在更深层次上运行,如数据库。它检查条目是否重复以及在UI级别上无法完成的任何其他检查。

  3. 我使用ValidationSummary控件显示第一个类型的错误,并使用第二个类型错误的标签。我尝试在禁用JavaScript的情况下测试它并且工作正常,然后我重新启用了JS并且 *问题出现了:*

    我首先尝试在数据库层上引发错误(通过输入已存在的名称)并且错误显示在标签上,一切都很好..现在我尝试从文本框中删除名称并按下提交所以我可以提出一个必需的字段验证器错误,预期的输出只是“这个字段是必需的”,但我看到的是“名称已经存在”和“此字段是必需的”。

    ..我认为这是因为当ASP.NET RequiredValidator工作时,它不会进行回发,所以数据库层永远不会被验证,甚至不会清除标签!

1 个答案:

答案 0 :(得分:1)

听起来你需要添加一些JavaScript,当更改名称时或者在尝试提交表单时,会隐藏/删除“名称已存在”错误消息。