gpt4 book ai didi

ruby-on-rails - 退格键无法以复杂的关联形式工作

转载 作者:行者123 更新时间:2023-12-03 17:50:58 25 4
gpt4 key购买 nike

最后更新:

我发现了问题所在。我正在运行 linux,在它上面你不能使用退格键返回,这是我喜欢做的。所以我运行了一个导致这个错误的扩展。我不确定它是否是破坏它的更新,因为我不记得曾经遇到过这个问题。

更新 2:

所以我发现这在我的应用程序的任何地方都有数字输入表单的任何地方都不起作用。它只在 Chrome 上执行此操作。

原文:

所以我有一个接受复杂“丰富”连接属性的表单。或者一个“has_many through:”加入。当我输入一个输入字段时,说“97.8”,然后通过点击退格键将 8 更改为 7,它改为使用浏览器的后页。我创建的任何其他正常形式都可以正常工作。

下面是我的表格

= simple_form_for @student do |f|
= f.fields_for :student_classes do |ff|
= f.input :grade
= f.association :class

然后在我的 Controller 中我有
def new
@student = Student.new
@student.student_classes.build.build_class
end

在我的学生模型中,我有:
has_many :student_classes
has_many :classes, through: :student_classes
accepts_nested_attributes_for :student_classes

在我的 StudentClass 模型中,我有
belongs_to :student
belongs_to :class
accepts_nested_attributes_for :class

最后在我的 Class 模型中,我有
has_many :student_classes
has_many :students, through: :student_classes

你能提供的任何帮助都会很棒。这是我遇到的一个非常奇怪的问题。

更新:

我发现它只是接受不退格的浮点数的输入。如果它接受一个字符串,那么它工作正常。

最佳答案

您可以使用 javascript 将事件处理程序附加到退格键(代码为 8 ),然后在按下它时执行您想要的任何操作。在您的情况下,您还需要过滤 keydown 是否发生在您的输入字段内:

$(document).on("keydown", function (e) {
if (e.which === 8 && $(e.target).is("input, textarea")) {
e.preventDefault();
<do whatever you want>
}
});

或者如果您更喜欢 CoffeeScript :
$(document).on "keydown", (e) ->
if e.which is 8 and $(e.target).is("input, textarea")
e.preventDefault()
<do whatever you want>
return

您可以更改选择器 input, textarea匹配您需要的输入的类型、类或 id。

啊,跨浏览器互操作性的温暖而模糊的世界……

关于ruby-on-rails - 退格键无法以复杂的关联形式工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21448371/

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