2013-04-20 115 views
1

我有一个问题,实现我想要做的事情。动态填充表单与JQuery和Ajax

我正在做一个像邮箱一样的邮箱,我想添加一个“回复”按钮,它将用一些值填充表单。

我在php中通过消息生成我的页面消息。对于每条消息,我生成一个带有自己ID的输入按钮,当我点击按钮时,我希望在一个新窗口中打开一个表单,预先填写收件人和标题,用户不可更改,另一个textarea用户可以填写他的消息。

为此,我有一个包含3个值(收件人,标题和消息)的表单的通​​用模板。所有(目前)文本或textarea值。

是否可以使用一种形式向任何人发送消息,或者是否必须为每个带有预填充值的消息生成一个表单?最后的解决方案似乎相当可怕。

我试图找到一些我只能用javascript做的事情,因为我希望表单能够被Ajax异步提交。 我可以创建一个onClick事件并将值传递给该函数,但在这种情况下,我不会拥有用户输入的textarea的值。

有没有办法做到这一点,例如,我会穿过onClick事件的值的Javascript中的整个窗体,从这些值将填充的形式的textarea的值,和然后通过Ajax发送一切?

回答

0

那么,这就是我所做的。

对于生成的每一个都响应按钮,我设置onClick事件传递我想被预先填充在我的形式向JS函数RespondMessage字段()

我同时也在页面底部制成的形式我用CSS隐藏了。 这个表单包含尽可能多的隐藏字段,因为我想要预先填充的数据,以及尽可能多的跨度,因为我想显示信息。

当我调用RespondMessage函数时,我用我调用函数的参数手动设置表单中的隐藏字段。 之后,我用我想要显示的信息填充我的跨度(例如,我为此消息设置收件人姓名)。

完成所有操作后,表单即可显示。所以在设置表单中的字段之后,我只是将表单从display:none传递给display:block,并且做了很多css技巧来使它们变得光滑美观。

所以现在你已经有了预先填好的表单,你只需要另一个函数来进行Ajax调用,以避免在每次响应后重新加载页面,并且你会用表单的提交按钮的onClick事件调用它。

我希望这个过程能帮助别人。

我不太确定这是否是最好的方法,我发现它非常脏并且可以利用,所以您需要比平时更多的服务器端检查,但它可以完成这项工作。

我没有提供代码,因为它大多都是真正专用于您正在设置的应用程序。