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/coffee の経験があまりありません。だから助けは素晴らしいでしょう。ありがとう

これまでのところありがとう..別の問題が表示されます..フォームを送信すると、新しい値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 呼び出しをインデントする必要があります。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

次のクラスの要素がありません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 に答える