【问题标题】:How do you generate forms with AJAX?如何使用 AJAX 生成表单?
【发布时间】:2009-10-08 15:33:43
【问题描述】:

如何生成 ajax 表单?

您是否将 <form> 代码保留在 javascript 文件中并使用 ajax(例如 JSON)加载数据,或者您是否加载生成的 html 文件(包含您所有的 <form><input>只需推送到浏览器)?还是有其他更简单的方法?

如果您使用任何框架,您是否会从模型中自动生成表单?

您认为最容易跟上和维护什么? 有没有你觉得有用的插件或库,也许对 jQuery 有用?

【问题讨论】:

  • 您希望通过 AJAX 生成表单来实现什么?您只是想在页面上动态加载表单,还是对表单的结果做一些事情?
  • 基本上更快更好地添加/编辑/删除功能。所以是的,动态加载表单。

标签: javascript html ajax forms


【解决方案1】:

jQuery库里有解决办法

 jQuery.get( url, [data], [callback], [type] ) 

使用 HTTP GET 请求加载远程页面。 这是一种无需使用更复杂的 $.ajax 函数即可向服务器发送简单 GET 请求的简单方法。它允许指定将在请求完成时执行的单个回调函数(并且仅当响应具有成功的响应代码时)。如果您需要同时拥有错误和成功回调,您可能需要使用 $.ajax。

$.get() 返回 XMLHttpRequest 它创造的。在大多数情况下,您 不需要该对象来操作 直接,但如果你可以使用 需要手动中止请求。

看看jQuery Documentation

例子:

$.get("someForm.pl", { name: "John" },
  function(data){
    $(data).appendTo(document.body); // you might place it somewhere else
  });

编辑:

仅更改现有 dom 值的示例:

<form id="myForm"><input id="myName" /></form>

$.get("someForm.pl", { name: "John" },
  function(data){
    $("#myForm").each(function(){
      this.value = data[this.id];
    });
  },"json");

您的服务器响应的位置:

{ 'myName' : 'John' }

【讨论】:

  • 所以在 someForm.pl 中打印出&lt;form&gt; 和所有内容?为什么在 javascript 中使用它并使用 $("#myinput").val(data.myfield) 设置值不是更好?
  • 对不起,我没有正确理解您的问题。使用现有的 DOM 并仅更改值会更快。您也可以使用 $.get 来请求 JSON 数据。
  • 是的,问题是您现在有 2 个文件,一个是 javascript,另一个是输出数据的文件。当您应该添加另一个字段时,您必须对两个文件都进行更改,我觉得这很烦人。
  • 不,正如您所见,'myName' 仅存储在 HTML 和 JSON 中,但不存储在 javascript 中。
猜你喜欢
  • 2018-05-30
  • 2021-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多