我正在使用jQuery向表添加新行。我有一个下拉行,使用json动态绑定。现在,当我添加行前一行选择的选项时,即重置。 我正在使用点击按钮添加新行
<a href="#" style="margin-top:20px;" id="insert-more" class="btn btn-primary" onclick="AddNewRow();"><i class="fa fa-plus"></i> Add Row </a>
$(document).ready(function () {
Bind();
});
function AddNewRow() {
var NewRow = ('<tr class="invoicerow">');
NewRow += ('<td class="taskclass"><select class="form-control task" id="city" name="city"></select>');
NewRow += ('<td class="mondaytext"><input type="text" id="pincode" class="form-control" name="pincode" data-parsley-trigger="change" required /></td>');
NewRow += ('<td class="mondaytext"><input type="text" id="pincode" class="form-control" name="pincode" data-parsley-trigger="change" required /></td>');
NewRow += ('<td class="mondaytext"><input type="text" id="pincode" class="form-control" name="pincode" data-parsley-trigger="change" required /></td>');
NewRow += ('<td class="mondaytext"><input type="text" id="pincode" class="form-control" name="pincode" data-parsley-trigger="change" required /></td>');
NewRow += ('<td class="mondaytext"><input type="text" id="pincode" class="form-control" name="pincode" data-parsley-trigger="change" required /></td>');
NewRow += ('<td class="mondaytext"><input type="text" id="pincode" class="form-control" name="pincode" data-parsley-trigger="change" required /></td>');
NewRow += ('</tr>');
$("#dvtexttable").append(NewRow);
Bind();
};
function Bind() {
$.getJSON('/TimesheetEntry/TaskList/', function (data) {
var items = '<option>Select a TaskList</option>';
$.each(data, function (i, finish) {
items += "<option value='" + finish.Value + "'>" + finish.Text + "</option>";
});
$('.task').html(items);
});
};
这是我的代码。任何帮助都会非常感激。
答案 0 :(得分:0)
这一行:
$('.task').html(items);
更新所有页面上的select
,而不只是新行的select
,重新创建以前的Bind()
(因此似乎重置了该值)
您需要将新行传递给select
函数,以便它知道要更新哪个.appendTo
这种最简单的方法是使用$("#dvtexttable").append(NewRow)
将新行作为jquery对象返回。
使用时:
#dvtexttable
您返回$(NewRow).appendTo("#dvtexttable"))
,而:
var row = $(NewRow).appendTo("#dvtexttable"));
Bind(row);
将在添加新行后返回
这会给你:
function Bind(row) {
$.getJSON('/TimesheetEntry/TaskList/', function (data) {
var items = '<option>Select a TaskList</option>';
$.each(data, function (i, finish) {
items += "<option value='" + finish.Value + "'>" + finish.Text + "</option>";
});
// add row here to ensure it only affects the new row
$('.task', row).html(items);
// alternate: row.find(".task").html(items)
});
};
和
// 1
struct node *valid,*invalid;//declare two stack for valid score and invalid score
int main()
{
// 2
valid->top=-1;//create empty stack for valid score
invalid->top=-1;