使用jQuery在鼠标点击时更改文本的最佳方法是什么?

时间:2011-11-10 17:26:12

标签: jquery

我有一个列表,我需要在将其添加到数据库之前进行拼写检查:

<table>
  <tr> 
    <td>1-1 Some text </td> <td> 1-2Some more text</td>
  </tr>
  <tr> 
    <td>2-1 Some text </td> <td> 2-2 Some more text</td>
  </tr>
  <tr> 
    <td>3-1 Some text </td> <td> 3-2 Some more text</td>
  </tr>
</table>
<button> Import list to database </button>

我的想法是这样,使用jQuery:

单击2-1中的文本时,它将被文本框“替换”,以便我可以编辑文本。

实现这一目标的最佳途径是什么?

我是否需要包含<input type="text"字段的隐藏字段? 这是最简单,最优雅的方式吗?

3 个答案:

答案 0 :(得分:1)

虽然这不是您问题的直接答案,但您应该查看Jeditable。这是一个插件,可以让你做你想要的和更多:

插件页面:http://www.appelsiini.net/projects/jeditable

演示:http://www.appelsiini.net/projects/jeditable/default.html

答案 1 :(得分:0)

示例可能有帮助

<table>
  <tr> 
    <td id="cell1">1-1 Some text </td> 
  </tr>

</table>

jquery的

$('#cell1').click(function(){

      $(this).html("<input type='text' value='"+$(this).text()+"'>");
  });

答案 2 :(得分:0)

如果你修改你的标记以包含输入框,那么当你用text()函数替换“static”字符串时,你需要解决该元素也有一个输入元素。

更好的方法可能是保留标记,并使用jquery根据需要将tetxbox交换进单元格。

因此,当用户单击该单元格时,您将执行以下操作

1)使用text()函数读取当前值 2)用新创建的标签替换当前值

当用户点击ENTER(或任何其他表示编辑的方法)时,请执行以下操作

1)使用val()函数读取当前输入值 2)删除标签 3)使用text()函数

将值放回单元格中