2010-09-26 1 views
0

У меня есть таблица, в которой я добавляю строки в onclick-событии, в строке есть кнопка, которая позволяет удалить ее ... это работает нормально. Проблема возникает, когда я вставил некоторые строки, например, 5 строк, и я удаляю любую строку btwn 1-й и последней строки, затем добавляю две последовательные строки, последняя строка дублируется значением счетчика предыдущей строки.Конечное значение добавленного элемента с использованием jquery

мой вопрос, как я могу получить, чтобы получить значение последнего ряда добавленного таким образом я могу увеличить его в любую строку я добавить без создания повторяющихся значений

здесь код

HTML

<form action = '' method = 'post' id = 'resume_form'>   

<table id="work" width="100%" border="0" cellspacing="0" cellpadding="0" style="color:#FFFFFF" > 
    <tr bgcolor="#0000FF"> 
    <td width="4%">&nbsp;</td> 
    <td width="76%"><strong>PARTICULARS</strong></td> 
    <td width="20%"><strong>AMOUNT</strong></td> 
    </tr> 
</table>    
<input type="button" id="button" value="Add field"/> 
</form> 

JS

<script type="text/javascript"> 

    $('#button').click(function(){ 
     var count = $('input.dasa').length; 
       //Html to create a new field  

       '<tr class = "work_experiance' + count + '">' + 
       '<td></td>' + 
       '<td><input class=\'dasa\' type="text" name="part' + count + '" id="part' + count + '" /></td>' + 
       '<td><input type="text" name="amount' + count + '" id="amount' + count + '" /</td>' + 

      '<td><input class="remove_project_file" onclick="del(\''+count+'\')" type = "button" id = "delete' + count + '" name = "delete' + count + '" onclick="del(' + count + ')" value="delete' + count + '">' + 
      '</tr>'; 
     $('#work').append(newFields); 
    }); 
    $('form').submit(function() { 
     $.post('resume.php', $(this).serialize(), 
      function(data) { alert(data); }); 
     return false; 
    }); 


function del(count) 
{ 
var count; 
    if(count=='0') 
    { 
     $('#delete'+count+'').attrib('disabled',''); 
    } 
    else 
    { 
     $('.work_experiance' + count + '').remove(); 
    } 

} 

</script> 

ответ

2

Получите ваш count из последнего поля вместо этого, как это:

var count = parseInt($('input.dasa:last').attr('id').replace('part',''),10) + 1; 

Это захватывает :last<input class="dasa" id="partNNN" /> и получает счет из него путем удаления префикса "part" затем praseInt() на то, что осталось. Затем мы просто добавляем 1 к этому результату для создания следующей строки.

+0

woks perfect .. я добавил постоянный ряд и инициализировал dasa к 0, остальные следуют – majimoto