【问题标题】:dynamically filled forms with Jquery & Ajax使用 Jquery 和 Ajax 动态填充表单
【发布时间】:2013-04-20 17:15:12
【问题描述】:

我在实现我想要做的事情时遇到了一点问题。

我正在做一个类似邮箱的页面,我想添加一个“响应”按钮,该按钮将用一些值填充表单。

我正在通过 php 中的消息生成我的页面消息。对于每条消息,我都会生成一个带有自己 ID 的输入按钮,当我单击该按钮时,我想在新窗口中打开一个表单,其中预先填写了收件人和标题,用户不可更改,另一个文本区域是用户可以填写他的消息。

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

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

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

有没有办法,例如,在 Javascript 中使用我将通过 onClick 事件传递的值的整个表单,从将使用这些值填充的表单中获取 textarea 的值,然后通过 Ajax 发送所有内容?

【问题讨论】:

    标签: php javascript forms zend-framework dynamic


    【解决方案1】:

    好吧,这就是我所做的。

    对于生成的每个响应按钮,我设置了一个 onClick 事件,将我希望在表单中预填充的字段传递给 JS 函数 RespondMessage()

    我还在页面底部制作了一个表格,我用 css 隐藏了它。 此表单包含我想要的预填充数据尽可能多的隐藏字段,以及我想要显示信息的尽可能多的跨度。

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

    所有这些都完成后,您的表单就可以显示了。所以在表单中设置好字段后,我只是将表单从 display:none 传递到 display:block,并做了很多 css 技巧以使其流畅和美观。

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

    我希望这个过程对某人有所帮助。

    我不太确定这是不是最好的方法,而且我觉得它很脏而且很容易被利用,所以你需要比平时更多的服务器端检查,但它确实可以。

    我不提供代码,因为它几乎都是特定于您正在设置的应用程序的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-14
      • 2016-02-10
      • 2014-10-01
      相关资源
      最近更新 更多