【问题标题】:How to add row to table when enter key press using Jquery?使用Jquery输入按键时如何向表中添加行?
【发布时间】:2016-10-11 13:43:38
【问题描述】:

我的桌子在这里(不是满的,因为他占用了大约 200 行)。此代码用于创建和填充一行:

<table>
  <TR>
    <TH>
      <FORM>
        <input name="designation" type="text" size="12" />
      </FORM>
    </TH> 
    <TH>
      <SELECT size="1" id="ERDF" >
        ...
      </SELECT>
    </TH>
    <TH>                
      <input name="famille" align="justify" type="text" size="12" />
    </TH> 
    <TH>
      <FORM>
        <input name="conditionnement" align="justify" type="text" size="12" />
      </FORM>
    </TH>
    <TH>
      <!-- Tableau dynamique -->
      <!-- APPELER LE CHAMP "total" -->
    </TH>
    <TH>
      <div>
        <input name="date_livraison" class="date_livraison" align="justify" type="date" size="12" />
      </div>
    </TH>
    <TH>
      <TABLE>
        <TH>Nom
          <input name="nom_recep" align="justify" type="name" size="12" />
        </TH>
        <TH>Portable
          <input name="port_recep" align="justify" type="text" size="12" maxlength="10" />
        </TH>
      </TABLE>
    </TH>
    <TH>
      <!-- Tableau fixe -->
      <TABLE>
        <TH>Meilleur prix
          <FORM>
            <input name="meilleur_prix" align="justify" type="text" size="12" />
          </FORM>
        </TH>
        <TH>Fournisseur
          <FORM>
            <input name="fournisseur" align="justify" type="text" size="12" />
          </FORM>
        </TH>
      </TABLE>
    </TH>
  </TR>
</table>

然后,我想在用户使用 Entry 键时添加一行。为此,我使用这个(它的工作):

<script>
        $(document).ready(function() {
            $(window).keydown(function(event){
                if(event.keyCode == 13) {
                    event.preventDefault();
                            $("body").load("C:\wamp\www\plat_web\new_line.php")
                }
                    // return false;
            });
        });
    </script>

所以,我想在用户使用 Entry 键时添加 HTML 代码(首先)。我对其进行了测试,但我有几个标签,其中几个没有被检测到,因为它们在新行上。请问如何改正?

【问题讨论】:

  • 您的 html 代码令人困惑。显示要插入的行的 html。
  • 这是一行的 HTML。我想要这一行。当用户使用 Entry 键时,这是我想要用于创建行的 HTML。

标签: javascript jquery html html-table


【解决方案1】:

您可以使用.append() 向表中插入新行。

$("tbody").append("<tr>...</tr>");

但是如果行的 html 很长,并且您想从文档中复制它,您可以使用 .clone() 复制行的 html,并使用 .appendTo() 将复制的 html 附加到 table 的末尾。

$("tbody > tr:first").clone().appendTo("table"); 

$(window).keydown(function(){
    if (event.keyCode == 13) {
        $("tbody > tr:first").clone().appendTo("table");       
        event.preventDefault();
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
    <tr>
        <td>Col1</td>
        <td>Col2</td>
        <td>Col3</td>
        <td>Col4</td>
        <td>Col5</td>
    </tr>
</table>

【讨论】:

  • 请问如何指定 HTML 文件?
  • @McNavy 正如question 中提到的,您可以使用.load() 来获取服务器上文件的内容。就像$("tbody").load("/path/myHtml.html") 获取html 文件的内容并将其插入tbody
  • 不工作 :(。我不明白为什么。我编辑我的第一篇文章以进行更新。
  • @McNavy C:\wamp\www\plat_web\new_line.php 是服务器端语言的路径。但是对于客户端,您不应该使用它。你应该使用例如localhost/plat_web/new_line.php
  • 也不要工作。我的文件 (new_line.php) 再次在我的 wamp 服务器上。所以,我可以用C:\wamp\www\plat_web\new_line.php,对吧?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-14
  • 2011-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-11
相关资源
最近更新 更多