0

我想创建某些 html 表单的字符串表示形式,以存储在 url 的哈希部分中。

我懒洋洋地希望会有这样的方法和jquery。serialize() 似乎可以解决问题,除了在我看到的所有示例中,它使用表单提交的“this”对象。在我的网站上没有提交表单,我只想能够序列化它们。我试过了:

params['formParams'] = $("#"+currentSearchForm).serialize();

但我只得到一个空字符串而不是序列化形式。

我应该欺骗表单提交并在其中生成我的序列化字符串,然后取消默认事件还​​是什么?似乎有点做作..?

或者可能是我只是在序列化错误..

谢谢你的帮助!

4

3 回答 3

1

首先确保您的表单元素具有“名称”属性。这可能是序列化无效的原因。

如果您想在提交时执行此操作,然后取消提交,您可以执行以下操作:

$("#formid").submit(function() {
  //whatever
  return false; //<- this cancels the submit
});
于 2012-09-19T13:57:40.837 回答
1

jQuery.serialize()应该可以解决问题。您可以简单地使用$('form').serialize()来获取表单数据。

这是一个演示,http://jsfiddle.net/muthkum/x6n2e/1/。在提交表单之前调用一个。单击提交按钮时会调用另一个。两者都有效。

于 2012-09-19T13:58:44.483 回答
0

简单到

$( YOUR_INPUTS_TO_BE_SERIALIZED ).serialize() ...

文档在这里了解更多信息

请注意,您可能需要转换输出字符串以使其适合散列授予的字符:

这个线程可以帮助你

于 2012-09-19T14:07:14.143 回答