Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
动态生成表单并通过jquery提交_Jquery - Fatal编程技术网

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

动态生成表单并通过jquery提交,jquery,Jquery,我搜索google只是为了找到通过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="', p

我搜索google只是为了找到通过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();
}
函数子值(url、参数){
变量形式=[''];
for(参数中的变量键)
形式。推送(“”);
形式。推送(“”);
jQuery(form.join(“”)).appendTo('body')[0].submit();
}
为什么[]第三个括号是这样使用的

var form = [ '<form method="POST" action="', url, '">' ];
var form=[''];
jQuery(form.join(“”)).appendTo('body')[0].submit()行的含义是什么 为什么使用了form.join(“”),为什么要像appendTo('body')[0]那样写为什么[0]

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

按问题顺序:

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

    var form = [ "first item", "second item", "third item", ... etc ];
    
  • form.join(“”)
    使用空字符串分隔符连接
    form
    数组的所有元素,因此
    form
    成为一个包含数组中连接的子字符串的字符串

  • jQuery(form.join(“”))
    将字符串转换为DOM元素,并将这些元素(
    )追加到
    正文中

  • 使用
    [0]
    可以获得
    表单
    ,但不是作为jQuery对象,而是作为DOM元素。本机
    form
    元素具有方法
    submit
    ,该方法通过
    .submit()
    调用

  • 如果您对本机JavaScript方法和函数有任何疑问,请阅读。jQuery文档提供于

  • []括号表示表单是一个数组

  • 该方法将数组中的所有字符串连接为一个大字符串。在代码中,这将成为html标记的形式

  • 方法,将表单html附加到文档主体,并返回jquery选择器

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


  • 以下是对你的一些疑问的解释

  • 通过将它包装成一个正方形元素,如
    ['']
    ,它就变成了一个数组

  • form.join(“”)
    这将连接使用
    .push()
    方法创建的表单数组

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

  • .appendTo('body')
    这将把内容附加到body元素


  • 请注意,
    [0]
    实际上并不是必需的,因为jQuery还定义了一个
    $.submit()
    方法,该方法的功能与本机DOM方法相同。您还可以保证jQuery对象只包含一个节点,因为您将HTML构建为只包含一个
    元素。这一点不清楚:-使用[0]可以获得表单,但不是作为jQuery对象,而是作为DOM元素。本机表单元素具有submit方法,该方法通过.submit()调用。如果可能的话,请用几个样品来详细说明。@Thomas当然!它的工作原理与jQuery中的方法相同。正如在链接文档中所写的那样,它允许我们访问每个jQuery对象下面的DOM节点。所以,正如您已经知道的,jQuery对象和DOM元素是不同的东西。例如,
    var el=$(“#myID”)
    var el=document.getElementById(“myID”)寻址相同的元素,但第一个将返回jQuery对象,第二个将返回DOM节点。这一点不清楚:-使用[0]可以获得表单,但不是作为jQuery对象,而是作为DOM元素。本机表单元素具有submit方法,该方法通过.submit()调用。如果可能的话,请用更多的例子来阐述。我想这篇文章会帮助你理解。为什么不呢?这篇文章是否指出了Array.join()函数的错误?你有什么可以推荐的选择吗?你可以看看。目前,MDN是最好的选择。