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

时间:2012-06-04 12:22:02

标签: 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] < / p>

请指导我详细说明以上粗体语法。感谢

3 个答案:

答案 0 :(得分:1)

按问题顺序:

  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元素。原生form元素的方法submit使用.submit()调用。

  5. 对于使用原生JavaScript方法和函数的任何疑问,您可以阅读MDN。 jQuery文档在api.jquery.com提供。

答案 1 :(得分:1)

  1. []括号表示表格是一个数组。

  2. Array.join方法将数组中的所有字符串连接成一个大字符串。在您的代码中,这将成为表单html标记。

  3. appendTo('body')方法,将form-html附加到文档正文,并返回jquery选择器。

  4. 因为jQuery选择器可以指向多个元素(它是一个数组),所以需要指定它是您要提交的第一个元素。因此[0]。

答案 2 :(得分:1)

以下是对您的一些疑问的解释。

  1. 通过包裹像[ '<form method="POST" action="', url, '">' ]这样的方形元素它变成一个数组。

  2. form.join('')这将加入使用.push()方法创建的表单数组。

  3. 当我们将[0]用于jQuery选择器时,它将成为jQuery对象的一个​​节点。我们可以在哪里使用普通的javascript操作。

  4. .appendTo('body')这会将内容附加到body元素。