表单从AJAX响应中删除

时间:2009-06-18 22:06:30

标签: php jquery ajax forms

我正在尝试添加一个带有ajax / jquery的表行,其中包含一个表单元素。如果我在没有ajax的情况下设置它,一切都运行正常,但不知何故<form>标签内的所有内容都完全丢失了。

我不确定我在哪里丢失表格(jquery的.html()与innerHTML实际上是一样的吗?如果是这样的话,我怀疑那是我失去它的地方。)

无论如何,这里有一些代码:

var worow = document.getElementById('worow_' + row);
var wotable = document.getElementById('tbl_workorders');

// add a new row to the table underneath our existing row.
var newrow = wotable.insertRow(worow.rowIndex+1);
var x = newrow.insertCell(0);

// set up the row a little bit
x.colSpan = 13;
x.style.padding = '10px';
x.style.backgroundColor = '#ccc';
x.align = "center";

x.innerHTML = '<img src="/images/loading.gif" />';

// a little ajax cuz we're cool that way
$.post("getwotrans.php", 
{
    workorder: row
}, 
function(response)
{

    // set the value of the row = response object from the AJAX
    $(x).html(response);
});

在getwotrans.php :(转述)

<table>
<thead><tr><td>blahblah</td></tr></thead>
<tbody><form><tr><td><input></td></tr></form></tbody>
</table>

所以会发生什么呢?我会运行javascript函数来添加行,并且行添加正常并且我看到了表头,但是tbody中的'form'就不存在了。

3 个答案:

答案 0 :(得分:1)

表单不能是tbody的子元素

答案 1 :(得分:1)

我有一些类似的问题。我使用隐藏的表单和javascript来复制点击隐藏表单元素的行的值,然后通过javascript提交表单。也许这是一个想法。

答案 2 :(得分:0)

当你把表格放在桌子外面时会发生什么?

<form><table>
<thead><tr><td>blahblah</td></tr></thead>
<tbody><tr><td><input></td></tr></tbody>
</table></form>

只是好奇这是否能解决问题?奇怪的是,如果没有同样奇怪的东西来修复它会发生这种情况!