0

我在表单标签中有输入字段列表

<div class="angefragte_stunden_<%= hour.id%>">
<%= h.text_field :angefragte_stunden %>

代码输出 =>

<div class="angefragte_stunden_458">
<input id="booking_user_458_angefragte_stunden" name="booking_user[458][angefragte_stunden]" size="30" type="text" value="32" />

...

我希望用户可以单击某个输入字段,并且 js 将值(例如 32)替换为 0。

试过:

$(document).ready ->  
  $(".angefragte_stunden").on "click", ->   
  $(this).val(0)

没有成功,我在 js/咖啡方面不是很有经验。所以帮助会很大。谢谢

到目前为止,谢谢.. 现在出现了一个不同的问题.. 当我提交表单时,新值 0 没有保存,而是旧值。如果我手动输入,则存储 0..任何想法?

最后结果:

<%= form_for @hour_user, :url => ..._path, :remote => true, :method => :put do %>
<div class="angefragte_stunden">
<%= h.text_field :angefragte_stunden, :class => "submittable"  %>

咖啡:

$ ->
 $(".submittable").on 'change', ->
  $(this).parents("form:first").submit()
  $(this).effect "highlight", {}, 1500

$ ->
 $(".angefragte_stunden > input").click ->
  $(this).val(0)
  $(this).parents("form:first").submit()
  $(this).effect "highlight", {}, 1500
4

4 回答 4

2

您需要缩进您的咖啡脚本调用。Coffeescript 的块语法由缩进控制。

$(document).ready ->  
$(".angefragte_stunden").on "click", ->   
$(this).val(0)

相当于js

$(document).ready(function(){})
$(".angefragte_stunden").on("click",  function(){})
$(this).val(0);

你要

$(document).ready ->  
  $(".angefragte_stunden").on "click", ->   
    $(this).val(0)

在js中是

$(document).ready(function(){
  $(".angefragte_stunden").on("click",  function(){
    $(this).val(0);
  });
});

正如 epascarello 指出的那样,您还需要修复您的课程。如果要应用多个类,请在它们之间留一个空格。$(".angefragte_stunden")将匹配具有类angefragte_stunden但不匹配的元素angefragte_stunden_458

于 2013-05-20T17:39:26.027 回答
0
$(document).ready(function(){   
    $('#booking_user_458_angefragte_stunden').click(function() {
      $(this).val(0);
    });
}); 
于 2013-05-20T18:21:57.380 回答
0

你没有类的元素angefragte_stunden

如果要使用该选择器,则需要为其提供公共类。

改变

<div class="angefragte_stunden_<%= hour.id%>">

<div class="angefragte_stunden angefragte_stunden_<%= hour.id%>">

或者使用带有选择器的开头,^=但是如果您开始添加其他类,那就很棘手了。

于 2013-05-20T17:36:02.013 回答
-1

您是否在输入标签中尝试过类似 onClick="this.value = 0" 的内容?

于 2013-05-20T17:34:32.937 回答