У вас есть проблемы, помимо удаления вашей строки.
Это:
function createNewRow (text1,text2){
$(document).ready(function(){
$('#tblOtherParties > tbody').append('<tr><td>
<input type="text" id="title1" value=""/>
</td><td>
<input type="text" id="title2"/>
</td><td>
<input type="button" id="btnDeleteOther" value="X"/>
</td></tr>');
});
}
было бы лучше записать как:
function createNewRow (text1,text2){
$('#tblOtherParties > tbody').append('<tr><td>
<input type="text" class="title1" value=""/>
</td><td>
<input type="text" class="title2"/>
</td><td>
<input type="button" class="btnDeleteOther" value="X"/>
</td></tr>');
};
и что касается
<input type="button" id="btnAddOther" title="Add" value="Add" onclick="javascript:createNewRow();"/>
убери это с
<input type="button" id="btnAddOther" title="Add" value="Add" >
Затем используйте jQuery для поведения, которое вы хотите
$(document).ready(function(){
$('.btnDeleteOther').live('click', function() {
if ($('.btnDeleteOther').length > 1)
{
$(this).closest('tr').remove();
}; //added this based on comments to other answer- always leaves one row in
});
$('#btnAddOther').click(function()
{
createNewRow();
});
});
РЕДАКТИРОВАТЬ: ОГРОМНОЕ предположение с моей стороны, вы можете передать текст на входы, когда вы добавляете строку, поскольку у вас есть (text1, text2) там ...
Чтобы сделать это, вам нужен источник этого, тогда вы можете сделать это с помощью:
var mytext1 = "default stuff for 1";
var mytext2 = "default stuff for 2";
function createNewRow (){
$('#tblOtherParties > tbody').append('<tr><td>
<input type="text" class="title1" value=""/>
</td><td>
<input type="text" class="title2"/>
</td><td>
<input type="button" class="btnDeleteOther" value="X"/>
</td></tr>');
$('tr:last').find('.title1').val(mytext1);
$('tr:last').find('.title2').val(mytext2);
};