jquery - 动态生成表单并通过jquery提交

标签 jquery

我在谷歌上搜索只是为了找到通过 jquery 生成和提交表单的方法,我找到了代码片段,但有些事情我不清楚。

function submitValues(url, params) {
var form = [ '<form method="POST" action="', url, '">' ];

for(var key in params) 
    form.push('<input type="hidden" name="', key, '" value="', params[key], '"/>');

form.push('</form>');

jQuery(form.join('')).appendTo('body')[0].submit();
}

为什么[]第三个括号的用法像

var form = [ '<form method="POST" action="', url, '">' ];

jQuery(form.join('')).appendTo('body')[0].submit(); 行的含义是什么 为什么使用 form.join('') 以及为什么这样写 appendTo('body')[0] 为什么[0]

请详细指导我了解上述粗体语法。谢谢

最佳答案

按问题顺序:

  1. 括号[]定义一个数组。因此,在第二行中,它定义了包含三个项目的数组:

    var form = [ "first item", "second item", "third item", ... etc ];
    
  2. form.join('')连接 form 的所有元素带有空字符串分隔符的数组,因此 form变成一个由数组中的子字符串连接而成的字符串。

  3. jQuery(form.join(''))将您的字符串转换为 DOM 元素和 appendTo("body")将这些元素 ( <form><input> ... </form> ) 附加到 body 内.

  4. 使用 [0]你得到你的form ,但是不是作为 jQuery 对象,而是作为 DOM 元素。 native form元素有方法 submit这是用 .submit() 调用的.

对于 native JavaScript 方法和函数的任何疑问,您可以阅读 MDN 。 jQuery 文档位于 api.jquery.com .

关于jquery - 动态生成表单并通过jquery提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10881199/

相关文章:

javascript - marginLeft 仅在调用两次时重置

javascript - jquery - 使用复选框显示/隐藏独特内容

jquery - 如果已经加载了值,如何清除加载时的文本框?

javascript - Bootstrap 日期选择器在 IE8 中没有响应

JavaScript/jQuery 简写函数定义

javascript - 与 'getElementsByClassName' + 基准相比,jQuery 中的类选择器出奇地慢

javascript - 创建自动滑动div的水平列表

php - 将单选按钮值插入 mysql

javascript - 为什么我的函数不能很好地与 .ready 配合使用?

javascript - jQuery 插件。添加选项和回调函数