【问题标题】:Make html table editable, and enable a per-row button when text changes in that row使 html 表格可编辑,并在该行中的文本更改时启用每行按钮
【发布时间】:2015-02-15 16:53:35
【问题描述】:

我有一个如下所示的 html 表格:

    <table id="tree">
        <tr id="foo-1">
            <td>fooId1</td>
            <td>fooName1</td>
            <td>fooCsv1</td>
            <td><button id="button-1" type="button" disabled>Save</button></td>
        </tr>
        <tr id="foo-2">
            <td>fooId2</td>
            <td>fooName2</td>
            <td>fooCsv2</td>
            <td><button id="button-2" type="button" disabled>Save</button></td>
        </tr>
    </table>

我想对这张表做两处修改:

-首先,我想让 fooName 和 fooCsv td 元素可编辑(实际上还有几个可编辑的列,但我只是使用两个列来简化此示例)。我知道我可以简单地在 td 元素中输入一个输入并设置值,但想知道是否有更简单的方法。

-其次,当用户通过键入/复制粘贴/等更改该行中的文本时,我希望启用每行中的“保存”按钮。我用谷歌搜索,发现我可以通过为输入事件添加处理程序来做到这一点,但我不确定合并它的最简单方法,我不确定它是否对第一个有影响我的任务。

如果我对 html 和 javascript 了解很多,我认为这应该很容易,但我不知道,所以有人知道实现我想要做的事情的简单方法吗?

【问题讨论】:

  • “保存”是什么意思?
  • save = 更新生成表的数据库(代码不存在)

标签: javascript html


【解决方案1】:
        <td contenteditable="true">fooName1</td>

并使用您想要发布的表格 HTML

编辑:

http://jsfiddle.net/9yyKN/11/

//Listen to blur event in contenteditable td elements 
    $('td[contenteditable=true]').blur(function () {
      $(this).parent('tr').find('button').removeAttr('disabled');

    });
//When a button is clicked find the nearest contenteditable td //element(s) and push their 
text content to an array, this array is later being posted.
    $('button').click(function () {
        var contents = $(this).parents().find('td[contenteditable=true]');
        var contentArray = [];
        for (i = 0; i < contents.length; i++) {
            contentArray[i] = contents[i].innerHTML;
        }
        $.post("test.php", contentArray);
    });

【讨论】:

  • 酷,我如何附加一个监听器来改变文本以启用按钮?
  • 谢谢!我在哪里放置 jquery 代码?除了 blur 之外,还有其他事件是指文本发生变化吗?
  • 你可以把整个东西包起来。在此代码中,仅模糊更改按钮属性
  • 我必须包含 jQuery 才能使用它吗?
  • 是的。该库极大地简化了 ajax 请求
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-27
  • 2023-03-15
  • 2011-07-25
  • 2022-12-22
  • 1970-01-01
相关资源
最近更新 更多