【问题标题】:how to handle multiple forms on one page?如何在一个页面上处理多个表单?
【发布时间】:2009-08-24 11:49:44
【问题描述】:

在一页上,我列出了带有不同答案的问题列表。 (texboxes,复选框等)页面是动态生成的。我必须将答案存储在数据库中。做这个的最好方式是什么?多种形式还是别的什么? 如果我可以在每个答案后发送 ajax 请求,那就太好了,但我不知道如何实现(如何检测该用户已输入答案并转到下一个问题)

我正在使用带有 c# 的 asp.net mvc

【问题讨论】:

    标签: jquery asp.net-mvc forms


    【解决方案1】:

    每个 HTTP 请求只能发送一个表单,因此为了更简单,您应该只使用一个表单并为每个答案字段指定一个唯一名称,然后您可以在服务器上使用该名称将其映射到数据库.

    我建议在申请人“完成”问题后不要发送 AJAX 请求。许多人想回答所有问题,然后再复习一遍。

    因此,我还建议不要使用“向导”方法(或每页一个问题,提交当前答案后您会得到下一个问题)。

    【讨论】:

    • 好吧,他可以序列化所有形式的所有信息并发送一个 ajax 请求......虽然不是最好的主意!
    【解决方案2】:

    我同意 Aaron 的回复,即您不想在每个问题后使用 AJAX 请求保存他们的回复。但是,如果您遇到确实需要根据用户在表单字段中编辑数据来触发 AJAX 请求的情况,您可以通过侦听诸如“onChange”和“onBlur”之类的 Javascript 事件并触发 AJAX 请求来完成此操作来自那个事件监听器。

    【讨论】:

    • 如何在整个表单的模糊中做到这一点?
    • 你不能对整个表单做onBlur,它是一个元素级别的事件。不过,您可以做几件事。在 onBlur 事件处理程序中,您可以遍历所有表单字段以查看它们是否有值,如果有,则仅触发 AJAX 调用。更好的选择可能是设置一个数组来指示每个元素的状态(修改与否)。然后在每个元素的事件处理程序中将其标记为已修改。然后您可以检查数组,如果所有元素都已修改,则可以提交表单,您可以发出 AJAX 请求。
    猜你喜欢
    • 1970-01-01
    • 2014-12-02
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 2015-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多