如何通过WebSocket传递表单数据? socket.io

问题描述

|
<form name=\"input\" action=\"\">
    <input type=\"text\" name=\"say\" /> 
    <input type=\"submit\" value=\"send\" />
</form>
我想通过Web套接字将这种形式的数据发送到服务器,我正在使用socket.io。 实现此目标的最佳方法是什么?     

解决方法

        您需要在表单上使用.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);
    ,        你可以试试看
    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\") ) );
祝好运 :)