我有以下代码:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv='Content-Type' content='text/html;charset=utf-8' />

    <script type='text/javascript' src='jquery-1.10.2.min.js'></script>
</head>
<body>
    <form id="testForm" method="post" action="">
        <textarea id="test" rows="15" cols="60"></textarea>
    </form>
    <button type="button" onclick="console.log($('#testForm :input').serializeArray());">Send</button>
</body>
</html>


Chrome控制台正在打印一个空数组,就像#testForm:input选择器未选择textarea一样。我正在寻找一种选择所有表单输入的方法,该方法对于textarea以外的其他元素也可以正常工作。我该如何解决?是否需要serialize * Array *还是可以只使用serialize方法将数据发送到服务器?

最佳答案

.serializeArray()使用输入元素的名称进行序列化,因为您的元素没有名称,所以将其省略。


  .serializeArray()方法将标准W3C规则用于
  成功的控制,以确定应包括哪些元素;在
  特别是该元素不能被禁用并且必须包含一个名称
  属性。


<textarea name="test" id="test" rows="15" cols="60"></textarea>


演示:Fiddle

09-16 01:28
查看更多