我想使用 socket.io 将选择框值发送到我的NodeJS服务器 onchange()。
现在,我可以发送按钮,如下面的代码所示;
server.js;
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res) {
res.sendFile(__dirname + '/index.html');
});
io.on('connection', function(socket) {
socket.on('socketdeneme', function(msg) {
console.log("Message received: " + msg);
});
});
http.listen(2000, function() {
console.log('listening on *:2000');
});
的index.html;
<!doctype html>
<html>
<head>
<title>Socket.IO chat</title>
<script src="/socket.io/socket.io.js"></script>
<script src="https://code.jquery.com/jquery-1.11.1.js"></script>
<script type="text/javascript">
$(function () {
var socket = io();
$('form').submit(function() {
socket.emit('socketdeneme', $('#m').val());
});
});
</script>
</head>
<body>
<form action="">
<select id=m multiple>
<option value="dnm">dnm</option>
<option value="dnm1">dnm1</option>
<option value="dnm2">dnm2</option>
</select>
<button>Send</button>
</form>
</body>
</html>
另一方面,下面的代码使用 onchange()函数发送数据,但我无法将其与 socket.io 一起使用。
<script type="text/javascript">
function submitformfabrika() {
document.formsubmitfabrika.submit();
}
</script>
答案 0 :(得分:0)
您可以使用.change方法(https://api.jquery.com/change/)发出将由服务器接收的socketdeneme事件。
替换
$('form').submit(function() {
socket.emit('socketdeneme', $('#m').val());
});
带
$('form').change(function() {
socket.emit('socketdeneme', $('#m').val());
});