gpt4 book ai didi

javascript - jQuery/CoffeeScript/Rails 不在我的输入上调用 change()

转载 作者:行者123 更新时间:2023-11-27 23:51:06 25 4
gpt4 key购买 nike

我有一个带有文本字段的表单,我试图在用户更改其文本时执行一个操作:

<%= form_for @item do |f| %>
<%= f.text_field :title, id: "edit_item_title" %>
<%= f.submit 'Save' %>
<% end %>

在我的 coffeescript 文件中:

$(document).ready ->
$('#edit_item_title').change ->
alert("Changed!")

由于某些原因,change() 事件没有被触发。只是为了表明其他一切正常,这里是一些确实有效的代码,使用 keypress 而不是 change:

$(document).ready ->
$('#edit_item_title').keypress ->
alert("Changed!")

我不能使用 keypress 因为它不考虑何时按下删除键,我也不能使用 keyup 因为它会在按下箭头键。

我对这个很陌生。为什么会发生这种情况的任何解决方法或想法?谢谢!

最佳答案

更改事件直到 <input> 才会触发失去焦点。来自fine specification :

4.10.5.5 Common event behaviors

[...] The change event fires when the value is committed, if that makes sense for the control, or else when the control loses focus.

所以只需在 <input type="text"> 中输入一些内容不会触发任何变化事件。

如果您需要在输入时对正在输入的内容使用react,那么您需要使用 keyup , keypress , 或 keydown 结合 @value和键盘事件。您使用哪一个取决于您需要做什么。

各种事件的演示:http://jsfiddle.net/ambiguous/hrrur2LL/2/

关于javascript - jQuery/CoffeeScript/Rails 不在我的输入上调用 change(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27263018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com