如何通过websocket传递表单数据? (socket.io)

时间:2011-05-29 14:31:32

标签: javascript jquery html node.js socket.io

<form name="input" action="">
    <input type="text" name="say" /> 
    <input type="submit" value="send" />
</form>

我想通过网络套接字以这种形式将数据发送到服务器,我正在使用socket.io。

实现这一目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:9)

您需要在表单上使用.serialize(),如下所示:

var formdata = $('form').serialize();

然后将它传递到websocket上。在node.js端,您可以使用querystring.parse

返回JS对象
var querystring = require('querystring');
// Data is the data received from the client
var result = querystring.parse(data);

答案 1 :(得分:-1)

你可以尝试这个

    function getFormData2Object(form){
    var un_array = form.serializeArray();
    var _array = {};
    $.map(un_array, function(n, i){
        if(n.name.indexOf('[') > -1 ){
            var array = n.name.match(/\[(.*?)\]/);
            var key = n.name.replace(array[1],"").replace('[',"").replace(']',"");
            if(!_array[key]){
                _array[key] = {};
            }
            _array[key][array[1]] = n['value'];
        }else{
            _array[n['name']] = n['value'];
        }
    });
    return _array;
}
socket.emit('blablabla', getFormData2Object( $("form") ) );
祝你好运:)