我正在尝试重命名嵌套在名为property-container
的div中的输入字段。用户可以创建多个property-container
。每次用户创建此div时,我都希望相应地重命名输入字段。这是我动态生成的表单
<div class="property-container">
<input type="hidden" name="proposal[process][systems][1][id]">
<input type="hidden" name="proposal[process][systems][1][name]">
<input type="hidden" name="proposal[process][systems][1][stations][1][id]">
<input type="hidden" name="proposal[process][systems][1][stations][1][name]">
<input type="hidden" name="proposal[process][systems][1][stations][1][price]">
</div>
这是我重命名的方式
stationFieldsNames:function(station_container, systemNumber){
station_container.find('.property-container').each(function(i, s){
var hidden = $('.property-container input[type=hidden]:first');
var system_id = station_container.index('div');
$(this).append('SCI inside '+system_id);
hidden.attr('name','proposal[process][systems]['+ system_id +'][id]');
hidden.next().attr('name','proposal[process][systems]['+ system_id +'][name]');
hidden.next().next().attr('name','proposal[process][systems]['+ system_id +'][stations]['+i+'][id]');
hidden.next().next().next().attr('name','proposal[process][systems]['+ system_id +'][stations]['+i+'][name]');
hidden.next().next().next().next().attr('name','proposal[process][systems]['+ system_id +'][stations]['+i+'][price]');
});
如您所见,我打印出system_id
方法中的$.each()
,我看到每次都是正确的,但字段名称中的值不一样。如果system_id
让我们说44字段名称为1.我不明白为什么会这样做。
答案 0 :(得分:0)
尝试
station_container.find('.property-container').each(function(i, s){
var hidden = $('input[type=hidden]:first', this);
var system_id = $(this).index();
$(this).append('SCI inside '+system_id);
hidden.attr('name','proposal[process][systems]['+ system_id +'][id]');
hidden.next().attr('name','proposal[process][systems]['+ system_id +'][name]');
hidden.next().next().attr('name','proposal[process][systems]['+ system_id +'][stations]['+i+'][id]');
hidden.next().next().next().attr('name','proposal[process][systems]['+ system_id +'][stations]['+i+'][name]');
hidden.next().next().next().next().attr('name','proposal[process][systems]['+ system_id +'][stations]['+i+'][price]');
});