Prototype Form.serialize(this)与另一个哈希合并

时间:2010-07-02 15:10:46

标签: prototypejs

我正在尝试使用Prototype(1.6.0.3)将表单哈希与另一个哈希合并

这不会将任何参数传递给服务器

<a href="#" onclick="new Ajax.Request('/users', {asynchronous:true, evalScripts:true, parameters:$H(Form.serialize(this, true)).merge({order: 'descend_by_created_by'})}); return false;">Name</a>

但是这样做

<a href="#" onclick="new Ajax.Request('/users', {asynchronous:true, evalScripts:true, parameters: Form.serialize(this, true)}); return false;">Name</a>

有关如何解决此问题的任何想法?我没有收到任何javascript错误。

1 个答案:

答案 0 :(得分:1)

看起来这是旧版Prototype文档的一个问题:

  

这是一个文档问题。预期   输出(来自Form.serialize 的)是一个   vanilla JS对象,不是哈希https://groups.google.com/group/prototype-core/browse_thread/thread/d686de54683b206c?pli=1

<强>更新

你可以达到你想要的效果:

<a href="#" onclick="new Ajax.Request('/users', {asynchronous:true, evalScripts:true, parameters: Object.extend(Form.serialize(true), {order: 'descend_by_created_by'})}); return false;">Name</a>

这使用了Object.extend

Object.extend(Form.serialize(true), {order: 'descend_by_created_by'})