克隆后替换表单索引ID

时间:2012-10-09 23:22:15

标签: javascript jquery forms

在项目表单中,用户可以克隆任何特定任务 - 这工作正常。我现在需要用新的时间戳替换复制的任务的索引ID(这是一个时间戳)。我目前的代码只替换了一个div。

如何使用时间戳替换所有表单输入/标签字段ID?我现在做一个find()然后替换。

任何想法都非常感谢!

$(function() {
  $('form').on('click', '.clone-task', function(event) {
    event.preventDefault();
    var time = new Date().getTime();
    var taskCopy = $(this).parents(".dupForm").clone();
    $("#dupTask").append(workoutCopy);
    var attributes = taskCopy.find('input').attr('name').replace(/\[\d+]/g, time);
      alert(attributes);
    });
 });

任务表格(ruby-on-rails):

 <fieldset>
 <div class="field">
 <b><%= f.label :name, "Major Task" %></b> | 
 <%= f.text_field :name, :placeholder => "task name" %>
 <%= f.hidden_field :_destroy %>
 <%= link_to "remove", '#', class: "remove_fields" %>
 </div>

 <div class="field">
 <%= f.label :time_start, "Scheduled Time" %><br />
 <%= f.time_select :time_start, {:ampm => true, :minute_step => 15} %>
 </div>
 <div class="field">
 <%= f.label :task_duration, "Task Duration(mins)" %>
 <%= f.number_field :task_duration, size: 3 %>
 </div>
 <b>Add Supporting Actions to Your Task</b> 
 <%= f.fields_for :activities do |builder| -%>
 <%= render 'activity_fields', f: builder %>
 <% end %>
 </div>
 <%= link_to_add_fields "Add Action", f, :activities %>
 </fieldset> 

1 个答案:

答案 0 :(得分:0)

jQuery attr()方法允许您使用函数作为参数,该函数将充当处理所有匹配元素的循环。

taskCopy.find('input').attr('name', function( idx, name){
    return name.replace(/\[\d+]/g, time);
});

API参考:http://api.jquery.com/attr/

相关问题