我已经构建了一个函数,使用jQuery将包含一些输入(如文本框,复选框和一个按钮)的新行插入表中。动态地在表中插入输入的行
这是我的代码:
$('#AddEntry').click(function() {
var lastTrClass = $('tr:last').attr('class');
var textBoxTitle = '<input id="titleid" type="text" value="" style="width: 100%; vertical-align: middle">';
var textBoxStartDate = '<input id="StartDate" type="text" class="required DatePicker" value="" style="width: 100%; vertical-align: middle">';
var checkBoxSync = '<input id="Sync" type="checkbox" checked="checked" disabled="disabled" value="true" style="vertical-align: middle">';
var lastDate = '<input id="LastSyncDate" class="required DatePicker" type="text" value="" style="width: 100%; vertical-align: middle">';
var buttonEdit = '<button id="btnEditar" class="EditButton icon_only text_only" style="vertical-align: middle;" type="button">Editar</button>';
if (lastTrClass == 'gradeA odd') {
$('#DataTable > tbody:last').append("<tr class='gradeA even'><td>#</td><td>" + textBoxTitle + "</td><td>" + textBoxStartDate + "</td><td>" + checkBoxSync + "</td><td>" + lastDate + "</td><td>" + buttonEdit + "</td></tr>");
}
else {
$('#DataTable > tbody:last').append("<tr class='gradeA odd'><td>#</td><td>" + textBoxTitle + "</td><td>" + textBoxStartDate + "</td><td>" + checkBoxSync + "</td><td>" + lastDate + "</td><td>" + buttonEdit + "</td></tr>");
}
})
正如你可以看到在我的代码,我产生输入到var
,但我的问题是,这是否是安全的。我的代码容易受到JS注入或类似的东西?有一个更好的方法吗?
与将元素附加到DOM的其他方式一样安全。 – j08691 2012-02-28 17:14:32
代码中的“var”仅在函数中作用并且是私有的。 – charlietfl 2012-02-28 17:25:30
是的“变种”范围只是在功能 – 2012-02-28 17:29:13