我有以下代码:
<!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