2012-03-17 3 views
0

RailsチュートリアルExercise 10.5.7は、マイクロポストフォーム用の文字カウンタを挿入するように要求します。私はthis pluginを使ってこの作業を行っています。jQuery InsertAfter Railsフォーム上の複製

次のスクリーンショットに示すように、文字カウントdivが2回挿入されている以外はすべて動作しています。

Two character count divs

私はブロックを取るform_forタグを使用していますので、これが起こっている疑いがあります。ここではページのコードは次のとおりです。

<%= javascript_include_tag "character-counter", "character-counter-options" %> 
<%= form_for(@micropost) do |f| %> 
    <%= render 'shared/error_messages', object: f.object %> 
    <div class="field"> 
    <%= f.text_area :content, placeholder: "Compose new micropost...", 
           id: "new-micropost" %> 
    </div> 
    <%= f.submit "Post", class: "btn btn-large btn-primary" %> 
<% end %> 

必要であれば、私はJavaScriptを投稿することができますが、私が言ったように、物事は、重複を除いて正常に動作しています。私はプラグインのコードを変更していません。プラグインのソースに含まれている例に従ったオプションだけです。これらのすべては、最初の段落のリンクにあります。


アップデート:ここには、私が使用しているjavascriptのです。プラグインのコードは長いので、pasteに入れました。 InsertAfterがペーストの38行目に表示されます。私の選択肢も過去にありますが、短いので、ここでも読むことができます。

var info; 
$(document).ready(function(){ 
    var options = { 
     'maxCharacterSize': -2, 
     'warningStyle' : 'warning', 
     'warningNumber': 40, 
     'displayFormat' : '#input/140' 
    }; 
    $('#new-micropost').textareaCount(options); 
}); 
+2

上記のコードに間違いはありません。 javascriptコードに問題がある可能性があります。あなたはここに投稿できますか? – asitmoharna

+0

@asitmoharnaコードを追加しました。探してくれてありがとう。これは私がgrokすることができたことがわかった最初のプラグインでしたが、それは古いです。あなたが別のものを知っているならば、それを提案してください。 – jrhorn424

+0

申し訳ありません。 :( – asitmoharna

答えて

0

アセットパイプラインにjavascriptを含めていたので、2度ロードされていました。それはアセットパイプラインによって一度ロードされ、その後私のフォームの部分で再びロードされました(私のOPのテンプレートコードの最初の行を見てください)。

参照:$(function) gets called twice in Rails 3.2.1 App

私は本当にちょうどその部分では、すべてのページにコードを必要としないので、私は、資産パイプラインの外にファイルを移動します。 :/

0

自分のアプリケーションの一つは、私はjquery.char_limit.jsを使用しています。 それは私のためにうまく動作します。

+0

私は実際に入力を制限したくないだけで、文字カウントを表示するだけです。私はサーバー側の検証を行っています。 [このプラグイン](http://cssglobe.com/post/7161/jquery-plugin-simplest-twitterlike-dynamic-character-count-for-textareas)も私が望むことをしますが、残念ながらカウンターを2回挿入しますよく – jrhorn424

+0

つまり、コンテナ、つまりテキストエリアIDを確認し、そのIDの他の要素がないことを確認する必要があります。 IDや新しいクラスを変更してみてください。 – asitmoharna

関連する問題