ネストされたフォームフィールドに関するRyanBatesのエピソードをフォローしており、パート2の最後に提案されているjqueryのビットを追加しました。すべてが正常に機能します(フィールドを追加および削除できます)。フォームに追加できるフィールドの数を制限したいと思います。私のapplication.jsで私は持っています
function add_fields(link, association, content) {
var new_id = new Date().getTime();
var regexp = new RegExp("new_" + association, "g")
$(link).parent().before(content.replace(regexp, new_id));
}
ライアンベイツが書いたように。別の投稿を読んで、私は今読むように行を変更しました:
function add_fields(link, association, content) {
if($(".fields input").length < 5) {
var new_id = new Date().getTime();
var regexp = new RegExp("new_" + association, "g")
$(link).parent().before(content.replace(regexp, new_id));
}
}
しかし、これは機能しません、私はここで何か間違ったことをしていますか?助けてくれてありがとう。
*編集
これはフォームです
<%= form_for @question, :url => { :controller => "questions", :action => "create" } do |f| %>
<%= f.label(:name, "Request Question:") %>
<%= f.text_field(:name, :size => 72, :maxlength => 120, :id => "name") %><br />
<fieldset>
<legend><b>Tags</b></legend>
<%= f.fields_for :tags, :url => { :controller => "tags", :action => "create" } do |builder| %>
<%= render "tag_fields", :f => builder %>
<% end %>
<p><%= link_to_add_fields "Add new keyword", f, :tags %></p>
</fieldset>
<% end %>
タグフィールドの一部
<p class="fields">
<%= f.label(:keyword, "Keywords:") %>
<%= f.text_field(:keyword, :size => 20, :maxlength => 25, :id => "keyword") %>
<%= link_to_remove_fields "remove", f %>
</p>