如何在一个页面上处理多个表单?

问题描述:

在一页上,我有不同的答案的问题列表。 (texboxes,复选框等)页面是动态生成的。我必须在数据库中存储答案。做这个的最好方式是什么?多种形式或其他东西? 这将是伟大的,如果我可以发送每个答案后的Ajax请求,但我不知道如何完成(如何检测用户已输入答案,并去下一个问题)如何在一个页面上处理多个表单?

我使用的是ASP。与c的净mvc#

您可以发送一个单一的表单,每个HTTP请求,所以为了使事情更简单,你应该只使用一个表单,并给每个答案字段一个唯一的名称,然后可以在服务器上使用将其映射到数据库。

我建议在申请人“完成”一个问题后不发送AJAX请求。许多人想回答所有问题,然后再次回答问题的答案。因此,我还建议不要使用“向导”方法(或每个页面有一个问题,并在提交当前答案后得到下一个问题)。

+0

好吧,他可以序列化所有形式的所有信息,并发送一个Ajax请求...虽然不是最好的主意! – redsquare 2009-08-24 12:05:31

我同意Aaron的回答,您不想在每个问题后使用AJAX请求保存他们的回复。但是,如果您遇到过需要根据用户编辑表单字段中的数据来触发AJAX请求的情况,则可以通过侦听“onChange”和“onBlur”等JavaScript事件并激发AJAX请求来自该事件听众。

+0

我怎么可以从整个窗体模糊呢? – Ante 2009-08-24 13:35:45

+0

PS:这可以解决我的问题 – Ante 2009-08-24 13:36:28

+0

您无法为整个表单执行onBlur,它是一个元素级事件。有几件事你可以做。在onBlur事件处理程序中,您可以循环遍历所有表单字段以查看它们是否具有值,并且只有在它们执行时才触发AJAX调用。一个更好的选择可能是做一些事情,比如设置一个指示每个元素状态的数组(修改与否)。然后在每个元素的事件处理程序中将其标记为已修改。然后你可以检查数组,如果所有的元素都被修改了,表单就可以被提交,并且你可以发出AJAX请求。 – Hamman359 2009-08-24 16:07:10