Javascript 输入后需要获取coffeescript的数据

Javascript 输入后需要获取coffeescript的数据,javascript,html,ruby-on-rails,coffeescript,Javascript,Html,Ruby On Rails,Coffeescript,我在rails应用程序中,我需要收集3个字段的输入,但我需要在用户输入后收集它们。我正在咖啡脚本中尝试,但不确定它是否正确 $("#mortgage").change -> mortgage = document.getElementsByName('mortgage')[0].value $("#price").change -> price = document.getElementsByName('price')[0].value $("#rent").change -

我在rails应用程序中,我需要收集3个字段的输入,但我需要在用户输入后收集它们。我正在咖啡脚本中尝试,但不确定它是否正确

$("#mortgage").change ->
  mortgage = document.getElementsByName('mortgage')[0].value
$("#price").change ->
  price = document.getElementsByName('price')[0].value
$("#rent").change ->
  rent = document.getElementsByName('rent')[0].value
我的html如下所示:

<%= text_field_tag :price, nil, placeholder: "ex. 100,000", class: "form-control form-control-lg", id: "price" %>

<%= text_field_tag :mortgage, nil, placeholder: "ex. 1,200", class: "form-control form-control-lg", id: "mortgage" %>

<%= text_field_tag :rent, nil, placeholder: "ex. 800", class: "form-control form-control-lg", id: "rent" %>

所以我知道有些不对劲。

您试图通过名称获取元素,如果您已经提到元素的id,请尝试通过
getElementById获取元素。
我认为这应该适合您

$('#mortgage').change ->
  mortgage = $(this).val()
$("#price").change ->
   price = $(this).val()
$("#rent").change ->
   rent = $(this).val()
尝试使用jQuery


试着做这样的事情

$('#mortgage').change (event) ->
  mortgage = Number $(event.currentTarget).val()

正在传递事件,以便您可以获取currentTarget并将val()转换为数字

您是否在浏览器控制台上获得了错误?是的,在chrome中,当我检查时,我在控制台上看到了错误。我已做了一些更改,请尝试此操作。没有,仍然获得错误。我的逻辑错了吗?我不熟悉coffeescript和javascript。很抱歉,错误出现在计算中,而不是数据收集中。你的回答是正确的,而且是第一位的。谢谢仍然有这个错误
uncaughtreferenceerror:price未定义
,正如您所知,我有3项抵押、价格和租金。我想price只是它第一次尝试获取的,你能显示堆栈跟踪吗?
$('#mortgage').change ->
  mortgage = $(this).val()
$("#price").change ->
   price = $(this).val()
$("#rent").change ->
   rent = $(this).val()
$('#mortgage').change ->
  mortgage = $(this).val()
$('#mortgage').change (event) ->
  mortgage = Number $(event.currentTarget).val()