0

我几乎已经解决了使用 jquery (1.8.0) 部分加载 html 的任务。

这是我将从我的服务器收到的 html:

<form id="save-form" action="/sales_item/edit/9/" method="post">
  <p>
     <label for="id_item_description">Item Description:</label>
     <input id="id_item_description" type="text" maxlength="40" value="test2y" name="item_description">
  </p>
  <input type="submit" value="save">
</form>

但是,当我在<tr>元素中使用以下 jquery 加载上述内容时...

function row_edit() {
    // e.g. url = '/sales_item/edit/8' 
    var url = $(this).attr("href") + "/";

    //e.g. get whole row to be replaced with editing fields
    var row = $(this).closest('tr')

    row.load(
        url,        
        function () {
            $("#save-form").submit(url, row_save);
        }
    );
    return false;
}

,层次结构完全丢失了,看看form标签是如何在内容之前关闭的。

<tr>
   <form id="save-form" action="/sales_item/edit/9/" method="post"></form>      
   <p>
     <label for="id_item_description">Item Description:</label>
     <input id="id_item_description" type="text" maxlength="40" value="test2y" name="item_description">
   </p>
   <input type="submit" value="save">
</tr>

知道我在负载中做错了什么吗?

4

1 回答 1

0

A<tr>不能包含<form>元素。大多数浏览器都尝试在一定程度上解决它,但它并不可靠,而且它毕竟是无效的。

您需要创建<td>第一个:

$("<td>").appendTo(row).load(...);
于 2012-08-22T21:33:40.450 回答