如何将JS应用于表中的用户添加行

时间:2015-03-13 00:51:59

标签: javascript html

我使用rails生成一个表单,允许用户单击按钮向表中添加新行。截至目前,用户可以点击添加按钮,然后会出现一个新行。

我遇到的问题是使用autoNumeric来掩盖百分比值的列。 JS不适用于用户动态创建的列。我正在使用类,所以我很困惑为什么autoNumeric masking在用户添加时不会应用于新行。百分比' class正在处理表单的其他部分。

# JS
$(function() {
  $('.percentage').autoNumeric('init', {aSign: '%', pSign: 's'});
});

# the field is set to the proper class
<tr class="fields">
    <td><input class="percentage" placeholder="Equity %" type="text"></td>
</tr>

# link that adds a new row
<a class="add_nested_fields" data-association="business_contacts" data-blueprint-id="business_contacts_fields_blueprint" data-target="#business_contacts" href="javascript:void(0)">Add a field</a>

添加的每一行都有class =&#34; fields&#34;在上面。我已经尝试了JS的onClick但没有获得成功的结果。

1 个答案:

答案 0 :(得分:0)

在页面加载后运行JS时,autoNumeric会在.percent类的所有DOM元素上调用autoNumeric。 但是当您添加新行时,您需要再次调用 Function addRow(){ $.('.container').append(this.$row); $.('.percent').autoNumeric();} Or you can share ur js code so I can help better. $.('.add_nested_fields').click(function()$.('.percent').autoNumeric();}) 。 例如:

  $(function() {  $(document).on('nested:fieldAdded', function(event){    $('.percentage').autoNumeric('init', {aSign: '%', pSign: 's'});  })});

编辑:提问者@Questifier

找到的解决方案
{{1}}

完美无缺。你问我之后,我更多地了解了宝石。如果您愿意,请复制该代码并将其作为答案 - 感谢您的帮助。