我可以写点东西,我问是否已经内置到jQuery中。jQuery序列化有反函数吗?
回答
不,没有。
您如何知道要更改哪个DOM元素?可能有不同形式的同名元素等。
也许parseJSON将帮助您:
jQuery.parseJSON(JSON)返回:对象
说明:取一个结构良好的JSON字符串,并返回结果的JavaScript对象。
谢谢... jQuery.serialize使用名称属性来序列化元素和值。这是除了URI编码和打包。这个过程相当容易逆转。我是新来的JavaScript广告jQuery,我只是觉得我在文档中丢失了一些东西。我必须咬下子弹,然后转移到json – garyM 2012-03-25 00:07:36
_“不,没有,也不可能” - - 当然可以。只要在特定的表单上调用(建议的)'deserialize()'方法,值就会回到那个表单。如果有多个具有相同名称的元素,应该按照序列化版本中的重复项的顺序进行设置(与.serialize()所做的相反)。我已经在多个项目上成功使用了这样的函数(不是用jQuery),但是由程序员来确保选择器是正确的。 – nnnnnn 2012-03-25 00:34:14
@nnnnnn。你是对的,可能会有一个不安全的版本。但是jQuery(尽我所知)没有不安全的函数。他可以写第一个,如果他喜欢... – gdoron 2012-03-25 05:40:57
简答:没有,没有东西built into jQuery这样做。不知道为什么不......
但这里是一个jQuery插件如果您使用.serialize()
得到一个序列化的字符串应该做的伎俩:
$.fn.deserialize = function (serializedString)
{
var $form = $(this);
$form[0].reset(); // (A) optional
serializedString = serializedString.replace(/\+/g, '%20'); // (B)
var formFieldArray = serializedString.split("&");
// Loop over all name-value pairs
$.each(formFieldArray, function(i, pair){
var nameValue = pair.split("=");
var name = decodeURIComponent(nameValue[0]); // (C)
var value = decodeURIComponent(nameValue[1]);
// Find one or more fields
var $field = $form.find('[name=' + name + ']');
// Checkboxes and Radio types need to be handled differently
if ($field[0].type == "radio" || $field[0].type == "checkbox")
{
var $fieldWithValue = $field.filter('[value="' + value + '"]');
var isFound = ($fieldWithValue.length > 0);
// Special case if the value is not defined; value will be "on"
if (!isFound && value == "on") {
$field.first().prop("checked", true);
} else {
$fieldWithValue.prop("checked", isFound);
}
} else { // input, textarea
$field.val(value);
}
});
return this;
}
(一) 重置在顶部是可选的。您可能需要首先复位的字段值,或明确他们使用这样的事情可能要:https://stackoverflow.com/a/6786237/1766230
(B)查看https://stackoverflow.com/a/24417399/1766230为什么我们需要更换+
。
(C)有关decodeURIComponent
的信息,请参阅Mozilla Developer Javascript Reference。
(注:如果您使用.serializeArray()
或一些其他的方式来序列数据,上面的都不行,你会发现这些解决方案有用的:jQuery plugin to serialize a form and also restore/populate the form?)
镗用法示例:
var $form = $('form.myFormClass');
var s = $form.serialize();
$form.deserialize(s);
这里是一个让你玩的设定值,结算,重置的jsfiddle和“反序列化”:http://jsfiddle.net/luken/4VVs3/
大提琴感谢您花时间做出/链接。 – Tom 2016-09-29 01:40:10
- 1. JQuery序列化和反序列化
- 2. jQuery序列化和反序列化
- 3. 在jQuery中序列化/反序列化
- 4. 反序列化时跳过函数
- 5. 反序列化函数不起作用
- 6. xcode中的反序列化函数
- 7. PHP序列化的数据反序列化的jQuery
- 8. jQuery反序列化PHP序列化的数据
- 9. PHP反序列化序列化数据
- 10. 序列化/反序列化PHP数组
- 11. 为什么在使用IsolatedStorageSettings.ApplicationSettings直接使用序列化/反序列化函数时可以使用序列化/反序列化函数?
- 12. \ http_parse_headers()有反向函数吗?
- 13. Silverlight的序列化/反序列化可能吗?
- 14. BinaryFormatter序列化和反序列化线程安全吗?
- 15. 调用构造函数时,反序列化JSON反对
- 16. 反序列化数组
- 17. 反序列化JSON数据
- 18. Xml数据反序列化
- 19. 反序列化C数据
- 20. 反序列化数据
- 21. datacontract序列化使用反射吗?
- 22. 反序列化
- 23. 反序列化
- 24. $ scope。$ watch函数不反映变化吗?
- 25. 如何在php中反序列化jQuery序列化值
- 26. 在JQuery中序列化和反序列化表单元素
- 27. Json.NET:序列化/反序列化阵列
- 28. 反序列化序列
- 29. jQuery的形式反序列化的
- 30. jquery如何反序列化json对象
可能有,但要看你的问题,你还没有告诉上下文我们。你想做什么? – Bojangles 2012-03-24 23:29:47
也许这有助于:http://stackoverflow.com/questions/901115/get-query-string-values-in-javascript – stewe 2012-03-24 23:30:54
谢谢我只是想懒惰..我只是从来没有理解hwy使一个方便的功能,而不是提供反向..干杯:) – garyM 2012-03-25 00:10:38