html追加jquery问题

时间:2011-06-08 13:44:42

标签: html jquery-append

您好,我通过jquery将列追加到一行。 我有一行看起来像这样

<form action="certifications.php?action=addnew_save" method="post">
<tr id="add_new_<?php echo($v_id);?>" valign="top" bgcolor="#EEEEEE"></tr>
</form>

现在我正在做什么,我在这一行附加了一些<td>。我的javascript函数看起来像这样

var sr=document.getElementById('hidden_'+vid).value;
var append='';
    append+='<td width="40" align="center">'+sr+'</td>';
    append+='<input type="hidden" value="'+vid+'">';
    append+='<td width="200" align="center"><input type="text" name="short_name" size="25" autocomplete="off" value="" /></td>';
    append+='<td width="200" align="center"><input type="text" name="full_name" size="25" autocomplete="off" value="" /></td>';
    append+='<td width="80" align="center"></td>';
    append+='<td width="80" align="center"><input type="checkbox" name="feature" /></td>';
    append+='<td width="80" align="center"><input type="text" name="order" size="2" value="" /></td>';
    append+='<td width="80" align="center"><input type="checkbox" name="hidden" /></td>';
    append+='<td width="80" align="center"></td>';
    append+='<td width="50" class="style3" align="center"></td>';
    append+='<td width="50" class="style3" align="center"><INPUT TYPE="submit"  VALUE="Submit" NAME="Submit"></td>';
    append+='<td width="50" class="style3" align="center"><a href="certifications.php?action=delete&id="onclick="if(confirm(\'Are you sure you want to Delete it ?\')){return true;}else{return false;}" >Delete</a></td>';
    append+='<td width="80" align="center"></td>';
    jQuery('#add_new_'+vid).append(append);

附加了列,但问题是form标记。从我的代码我希望在追加html之后应该看起来像这样

<form action="certifications.php?action=addnew_save" method="post">
<tr id="add_new_<?php echo($v_id);?>" valign="top" bgcolor="#EEEEEE">
 <td widht="40">Value</td>
 Other tds
  .
  .
  .
  .
</tr>
</form>

但我收到<tr>上方的表单标记,看起来像这样

   <form action="certifications.php?action=addnew_save" method="post">
   </form>
    <tr>
     my <td>
    </tr>

追加有什么问题?为什么表格标签总是在

之上

1 个答案:

答案 0 :(得分:5)

更改

jQuery('#add_new_'+vid).append(append);

jQuery('#add_new_'+vid).html(append);

您不希望在元素后添加代码,但是您尝试将其插入到tr中。

更新:从技术上讲,您不应该使用<tr>包裹<form>,其无效的HTML。 tr必须是table或tbody的子元素,tr元素必须具有td作为子元素。你需要在每个td中使用一个表单,或者你需要你的表单来包装整个表。