lau*_*kok 15 jquery serialization jquery-1.9
如何使用jQuery函数访问已"序列化"的数据?
var test = $("form").serialize();
Run Code Online (Sandbox Code Playgroud)
我有这个数据......
url=hello+1&title=hello+1&content=abc
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得'url'的值? - 我试过这个......
console.log(test.url);
Run Code Online (Sandbox Code Playgroud)
但我知道undefined- 我希望得到结果"hello+1"
Tsa*_*nev 22
serialize方法仅从表单创建URL编码的字符串,但这是一个字符串,即您无法获取url或任何其他值的值.为此,您需要将字符串解析回对象.您可以查看库:https://github.com/kflorence/jquery-deserialize
但是,最好只选择包含该值的字段并从那里获取,即
jQuery('input[name="url"]').val();
Run Code Online (Sandbox Code Playgroud)
或者如果您在该字段上有id或类,则可以将其用作选择器.
PS url的值是"hello 1",+只是空格在查询字符串中的编码方式.
Kol*_*ors 17
该serialize() 方法旨在创建URL编码的字符串,通常用于对服务器的AJAX请求.这意味着您无法像传统意义上的对象或数组一样访问字符串,而是有两种方法可以实现您想要的结果...
(这个问题可能已经过时了,但原始答案并没有真正回答最初的问题,他们也没有给出太多解释......)
第一种方法和我首选的serializeArray() 方法是使用该方法,如果您有多个值并希望获取每个值的值,这可能是一个有用的方法,而不是必须显式选择每个元素来获得该值.
使用此方法的解决方案(如下所示)会将选定的表单或元素序列化为一个对象数组,然后可以将这些对象放入单个对象中,并使用函数轻松访问,以便在脚本中随时随地获取值. ..
//Serialize the Form
var values = {};
$.each($("form").serializeArray(), function (i, field) {
values[field.name] = field.value;
});
//Value Retrieval Function
var getValue = function (valueName) {
return values[valueName];
};
//Retrieve the Values
var url = getValue("url");
Run Code Online (Sandbox Code Playgroud)
这是一个JSFiddle代码片段......
$(document).ready(function () {
var values = {};
$.each($("form").serializeArray(), function (i, field) {
values[field.name] = field.value;
});
var getValue = function (valueName) {
return values[valueName];
};
var first = getValue("FirstName");
var last = getValue("LastName");
$("#results").append(first + " & ");
$("#results").append(last);
});Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<form action="">
First name:
<input type="text" name="FirstName" value="Foo" />
<br>Last name:
<input type="text" name="LastName" value="Bar" />
<br>
</form>
<div id="results"></div>Run Code Online (Sandbox Code Playgroud)
第二种方法,如前所述,只是直接从您尝试收集的表单元素中获取值,而不是序列化该值.这可以简单地使用jQuery val() 方法实现- 这将获得选择器的输入值.
虽然这种方法对于选择单个元素很简单,但在尝试从表单中选择和检索多个元素的值时,它很快就会变得混乱......
$("input").val();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
54690 次 |
| 最近记录: |