使用表单输入中的咖啡脚本编辑保存的值

Editing a saved value with coffeescript from form input

本文关键字:脚本 编辑 保存 咖啡 表单 输入      更新时间:2023-09-26

我正在尝试根据用户输入的内容编辑页面上的数字,但我无法使其完全正常工作。每次我让它的一部分工作时,另一部分就会断裂......

我有一个表单输入字段,如下所示:

<input id="timecard_hours" type="number" placeholder="8"/>

它下面,我有一些东西显示他们已经拥有的小时数(我在这里将其硬编码为 5,但这通常是从数据库中获取的数字):

<div class="row">
  <h1 class="center" id="new_timecard_hours">5</h1>
  <p class="center">hours so far this week</p>
</div>

我试图做的是获取它,以便当用户在输入字段中键入数字时,该数字将被添加到页面底部已经显示的小时数中。我还希望这样,如果他们决定改变主意(在提交表单之前)并返回输入字段更改数字,新数字将被添加到旧的"new_timecard_hours"而不是他们已经添加的新数字。

到目前为止,我的咖啡脚本是这样的:

 $ ->
   $('#timecard_hours').focus ->
     @previousHoursValue = +($('#timecard_hours').val())
   $('#timecard_hours').bind "keyup", ->
     newHours = +($('#timecard_hours').val())
     totalHours = +($('#new_timecard_hours').val()) + newHours - @previousHoursValue
     $('#new_timecard_hours').html(totalHours)

但这并不是将其添加到"new_timecard_hours"中,它只是替换它。关于我该如何做到这一点的任何想法?

在这个问题上花费了几个小时时,我发现了一些东西,表明我以某种方式用 .data 保存了"new_timecard_hours",然后将其添加到输入字段值中......我真的不明白,想出了这样的东西:

oldHours = $('#new_timecard_hours').data($('#new_timecard_hours').text())

但这似乎并没有真正起到任何作用...

任何想法或帮助将不胜感激!

好的,所以如果其他人有类似的问题,我找到了解决方案......在咖啡脚本中,托托尔时间应该是;

totalHours = +($('#new_timecard_hours').text()) + newHours - @previousHours

因为new_timecard_hours是从数据库中获取的,所以不是 .val(如果我没记错的话,它仅来自表单输入)。