我在序列化表单时出现问题,并且使用jQuery textarea
方法在serializeArray()
的序列化中获取这些小小的箭头
但是,当我使用val()
方法时,结果如下:
谁能告诉我他们为什么不同?我是如何摆脱小马车箭头并使其像val()
结果一样,因为小箭头给我带来了问题? (顺便问一下小箭的正确用语是什么?)
答案 0 :(得分:2)
这是因为serializeArray
用" \ r \ n"替换回车符,而.val
在添加它们的浏览器中删除它们(IE和Opera)。
https://github.com/jquery/jquery/blob/master/src/serialize.js
这导致了一些奇怪的结果:
$([some-selector]).val() != $([some-form]).serializeArray()[0].value
请参阅此jsfiddle以获取示例:
https://jsfiddle.net/434sj450/
以下是此行为的旧jquery错误/解释:
答案 1 :(得分:0)
您的结果没有差异。
检查这样的对象时,检查器只会将换行符显示为托架箭头。尝试并双击该值,您正确地看到它展开以显示遍布3行的完整字符串。
.val()
返回textarea的字符串值。
.serializeArray()
返回表单中的元素数组。
这两行将在控制台中输出相同的内容:
console.log($(this).val());
console.log($('form').serializeArray()[0].value);