【问题标题】:Rails implementation of input tag firing event on value change值更改时输入标签触发事件的Rails实现
【发布时间】:2019-06-17 16:11:52
【问题描述】:
我想知道是否有一些更简洁的方法来实现在input 标记值更改时触发事件(我希望它在每次输入/删除字符时触发)并使这些值在控制器中可见,而不是使用 ajax?
所以我现在知道的方法是实现 JavaScript sn-p,它将 addEventListener 附加到 input 元素(如 here),并将 ajax 调用初始 rails 控制器以传递新的 input 标签值.然而,ajax 感觉太多了,而不是在 rails 中会有原生的东西,我似乎找不到它。
【问题讨论】:
标签:
javascript
ruby-on-rails
ajax
dom-events
【解决方案1】:
如果您需要从浏览器到服务器的任何内容(以任何语言编写)而不刷新页面,Ajax 是您的最佳选择。现在,fetch 将是另一种选择,其工作方式类似。
如果您需要将每个按键发送到服务器(控制器),您应该添加一个keyup 事件监听器。在事件监听函数中,对端点进行 Ajax/fetch 调用,并从您的控制器返回相关信息。
请记住在请求中包含时间戳,并将它们发送回来作为响应。在大多数此类情况下,您需要区分“什么是新的”和“什么是陈旧的”,以防用户输入太快。由于网络延迟,响应通常不会按照发出请求的顺序返回。