如何轻松填写表单字段?

发布于 2024-08-16 08:13:33 字数 726 浏览 5 评论 0原文

每次表单显示时,示例 ajax 表单

<form method="post">
  <input type="text" name="name" />
  <input type="text" name="email" />
  <select name="group">
    <option value="1">group 1</option>
    <option value="2">group 2</option>
  </select>
  <button type="submit">submit</button>
</form>

都会发送 ajax 调用,并且服务器返回一个 json 对象,就像

{"name":"john", "email": "[email protected]", "group": 2}

我不想手动使用 json 数据填充表单的繁琐工作一样,例如

$('#myform').fillWith( json );

The example ajax form

<form method="post">
  <input type="text" name="name" />
  <input type="text" name="email" />
  <select name="group">
    <option value="1">group 1</option>
    <option value="2">group 2</option>
  </select>
  <button type="submit">submit</button>
</form>

each time the form is show an ajax call is sent and the server returns a json object like

{"name":"john", "email": "[email protected]", "group": 2}

I don't want to do the tedious work of filling the form with the json data manually, e.g

$('#myform').fillWith( json );

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

为人所爱 2024-08-23 08:13:33

您可以轻松构建一个简单的插件来执行此操作:

jQuery.fn.fillWith = function(input) {
  return this.each(function(){
    var form = this;
    $.each(input, function (key, value) {
      $(form).find('[name='+key+']').val(value);
    });
  });
};

您可能需要优化属性选择器,仅检查 inputselecttextarea元素,在此示例中,选择器正在查找任何元素 (*[name=foo])。

此外,您可能还需要添加一些代码才能正确处理单选按钮。

此处查看您的标记示例。

You could easily build a simple plugin to do so:

jQuery.fn.fillWith = function(input) {
  return this.each(function(){
    var form = this;
    $.each(input, function (key, value) {
      $(form).find('[name='+key+']').val(value);
    });
  });
};

You may want to optimize the attribute selector, to check only for input, select, textarea elements, in this example the selector is looking for any element (*[name=foo]).

Also you might have to add some code to handle radio buttons correctly.

Check an example with your markup here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文