需要从表单中获取序列化数据

时间:2012-07-25 16:09:24

标签: javascript prototypejs

我是prototypejs的新手。你们能告诉我如何在原型中使用Ajax从发布的表单中获取序列化值吗?

http://www.prototypejs.org/api/ajax/request

3 个答案:

答案 0 :(得分:0)

这是你需要的吗?

http://prototypejs.org/api/form/serialize

或者您想通过ajax而不是页面加载来处理表单?然后

http://prototypejs.org/api/form/request

答案 1 :(得分:0)

“如何使用Ajax从发布的表单中获取序列化值”听起来好像您希望Ajax 响应包含发送到服务器的序列化数据,但响应包含的是完全取决于服务器。通常,一旦发出Ajax请求,onComplete处理程序并不真正关心它发送的属性。 response(以及任何其他Ajax回调)的onComplete参数包含request属性,其中包含parameters个对象。如果您确实需要查看请求发送到服务器的内容,这将非常有用,例如:

$('customerdetails').request({
    method: 'get',
    onComplete: function(response) {
        console.log(response.request.parameters); // What you sent to the server
        console.log(response.responseText); // What the server sent back to you
        console.log(response.responseJSON); // JSON-ified version of what the server sent back
    }
});

如果Prototype不确定响应实际上是否包含JSON(例如,如果响应头设置不正确),response.responseJSON可能是null。如果您可以将响应保留为JSON,则可以执行以下操作:

onComplete: function(response) {
    var jsonObj = response.responseJSON || response.responseText.evalJSON();
    // now you can work with jsonObj
}

希望这会有所帮助,我不会完全误解你的问题。

答案 2 :(得分:0)

new Ajax.Request('your_ajax_url',{
   method:'POST',
   parameters:Form.serialize($('your_form_id'))
});