使用 d3 而不是 jQuery 来处理表单输入会导致重新加载“/”
Using d3 instead of jQuery to process form input causes re-load of "/"
要点 http://bl.ocks.org/gregsgit/7cbe5a54fdae2492a826或 https://gist.github.com/gregsgit/7cbe5a54fdae2492a826
我尝试只使用 d3 而不是 d3 和 jQuery。后端是node.js + express + http + fs + socket.io。前端使用套接字客户端,d3,jQuery。
替换以下内容:
$('form').submit(function(){
socket.emit('sent message', $('#theInput').val());
$('#theInput').val('');
return false;
});
跟
d3.select("#theForm").on("submit", function() {
var inp = d3.select("#theInput");
var v = inp.property("value");
inp.property("value", "");
socket.emit('sent message', v);
return false;
});
导致重新加载"/",这将删除我在 index.html 中累积的状态。
换句话说,在节点顶层的多重绘制服务器.js中,我在请求"/"时打印到控制台。使用 jquery 代码,"/"加载一次,我可以多次提交表单而无需重新加载。使用 d3 表单处理,每次输入表单后都会重新加载"/"。
有什么想法吗?
问题是除了返回 false
之外,您还需要取消表单的提交,这可以通过调用 event.preventDefault
来完成。可以通过在 .on("submit", ...)
函数开始时调用 d3.event.preventDefault()
来使用 D3 执行此操作。
相关文章:
- 创建新数据和加载现有数据需要单独的视图吗
- 钛 - HTTPClient:打开新的控制器加载
- 保持 JavaScript 在浏览器控制台中运行,即使在新的页面加载之后也是如此
- 路由到新页面时加载不起作用
- 如何在新窗口完成加载后执行某些内容
- 使用新标题重新加载 html 页面
- Primefaces在打开新页面时加载数据消息
- Wordpress音频播放器和平滑状态.在新页面重新加载播放器时调用什么回调函数
- 用新数据重新加载renderer3d
- 文本不被渲染后,新的页面加载- JQuery移动
- 需要在新标签中加载pdf/doc文件,而不是下载,只是想在浏览器中阅读
- 用新参数重新加载页面
- Js和CSS不检测新页面何时加载
- 在新页面上加载一个flash视频,它在上一页上的位置
- 在新窗口中加载代码编写器视图
- 在控制台中使用新脚本重新加载页面
- 如何在加载新页面后加载AJAX数据
- 如何使用jQuery在新窗口中加载页面,然后关闭它们
- Jquery没有看到新的HTML加载到对话框中
- 无法用新值重新加载JGrid