【问题标题】:How to display validation after the form has been generated via Ajax如何在通过 Ajax 生成表单后显示验证
【发布时间】:2011-01-20 14:00:21
【问题描述】:

在提交通过 ajax 生成的表单后,我正在努力寻找显示验证消息的最佳方式。

让我解释得更好:
我有一个以几个选项开头的页面。根据用户从下拉列表中选择的内容并通过添加新字段来创建表单并在最后提交表单。

问题在于,即使我可以在服务器上进行验证检查,并在页面上显示一般验证消息。我应该如何使用用户在按下提交按钮之前输入的值预先填写表单字段。

【问题讨论】:

  • 表单是通过DOM创建的吗?抱歉,我正在尝试弄清楚验证部分的工作流程。
  • 是的,通过DOM和innerHtml创建:按钮被点击,ajax调用返回json,一些通过DOM创建的html表单元素其他通过innerHtml

标签: javascript ajax asp.net-mvc validation user-interface


【解决方案1】:

三个选项:

  1. 普通 POST -> 服务器呈现提交的表单(您应该能够重建表单服务器端)

  2. ajax POST -> 如果验证成功则重定向用户

  3. 在发布前检查 -> 同步 ajax 验证调用

【讨论】:

  • 我要选择选项 2 选项 1 太复杂了。我必须将整个模型发送回页面,以显示验证错误。选项 2 也有他的问题:我必须手动显示验证消息
【解决方案2】:

我可以看到几种方法来处理这个问题。

1) 在提交时执行另一个 AJAX 调用,进行验证并返回没有完整的帖子。这不是一个优雅的解决方案,因为它涉及两次往返,并且根据验证会导致性能问题。

2) 当你返回用于扩展表单的 json 时,让它转为 2 组 json 对象。第一组对象将代表您当前使用的数据。数组中的第二组代表验证逻辑,然后您可以在创建表单时应用它。

这两种方式都不是真正优雅的;但是,后者提供了一种最小化往返验证的方法。

【讨论】:

  • 是的,我只是想只做一个 Ajax POST 而不是正常的 POST 并让它返回可能的验证错误......第二种方法是不可能的,验证逻辑在客户端上是不可能的侧面
猜你喜欢
  • 1970-01-01
  • 2013-06-30
  • 2011-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多