`
IT_zhlp80
  • 浏览: 41429 次
  • 来自: 北京
社区版块
存档分类
最新评论

jQuery实现可编辑文本框

阅读更多
学习和交流——jquery资料

一个用jquery完成的效果:可编辑的表格

1.先写一个含有表格的页面jqueryEdit.html:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>jquery示例3:可修改的表格</title>
    <script type="text/javascript" src="jslib/jquery.js"></script>
    <script type="text/javascript" src="jslib/jqueryEditUseBlur.js"></script>
</head>
<body>
    <table border="1">
        <tbody>
           <tr>
               <td>1234</td>
               <td>5678</td>
           </tr>
        </tbody>
    </table>
</body>
</html>

2.书写一个javaScript脚本文件,来完成表格的可编辑效果,jqueryEdit.js:

这个文件中,当输入框修改完后是按回车键提交的,下面一个文件是通过鼠标相对文本框失去焦点来实现提交的,本人认为下面第二种方法比较合乎实际一点。

//在页面加载的时候,让所有的td有一个点击事件
$(document).ready(function(){
    var tdNods = $("td");
    tdNods.click(tdClick);
});

//td点击触发的函数
function tdClick(){
         //1.取出当前td里面的文本内容
         var td = $(this);
         var tdText = td.text();
        //2.清空td里面的文本内容
         td.html(""); //也可以使用td.empty();
        //3.建立一个输入框,也就是input标签
          var input = $("<input>");
        //4.将输入框的内容设为刚才保存的td里面的文本内容
          input.attr("value",tdText);
         //4.5.让文本框能够响应键盘按下的keyup事件,主要是用于处理回车确认
           input.keyup(function(event){
               //1.获取当前用户按下的键值
                  //解决不同浏览器获得事件对象的差异,
                 // IE用自动提供window.event,而其他浏览器必须显示的提供,即在方法参数中加上event
               var myEvent = event || window.event;
               var keyCode = myEvent.keyCode;
               //2.判断是否是回车按下
               if(keyCode == 13){
                   //2.保存当前输入框的内容
                    var input = $(this);
                    var inputText = input.val();//这个地方不能用text(),而是用val()
                   //3.清空td的内容,即去掉输入框
                   var td = input.parent("td");
                   td.empty();
                   //4.将保存的文本内容填充到td中去
                   td.html(inputText);
                   //5.让td重新拥有点击事件
                   td.click(tdClick);
               }
           });
        //5.将输入框加到td中
          td.append(input);  //也可以用input.appendTo(td);
        //5.5 让文本框中的文字被高亮选中
        //需要将jquery对象转化为DOM对象
         var inputDom = input.get(0);
         inputDom.select();
        //6.需要移除td上的点击事件
        td.unbind("click");
};



下面这个脚本文件是通过鼠标相对文本框失去焦点来实现提交的jqueryEditUseBlur.js:

下面用红色显示的是与上面文件不一样的地方。

//在页面加载时候,就使td节点具有click点击能力
$(document).ready(function(){
    var tdNods = $("td");
    tdNods.click(tdClick);
});

//td的点击事件
function tdClick(){
    //将td的文本内容保存
    var td = $(this);
    var tdText = td.text();
    //将td的内容清空
    td.empty();
    //新建一个输入框
    var input = $("<input>");
    //将保存的文本内容赋值给输入框
    input.attr("value",tdText);
    //将输入框添加到td中
    td.append(input);
    //给输入框注册事件,当失去焦点时就可以将文本保存起来
    input.blur(function(){
        //将输入框的文本保存
        var input = $(this);
        var inputText = input.val();
        //将td的内容,即输入框去掉,然后给td赋值
        var td = input.parent("td");
        td.html(inputText);
        //让td重新拥有点击事件
        td.click(tdClick);

    });
    //将输入框中的文本高亮选中
    //将jquery对象转化为DOM对象
    var inputDom = input.get(0);
    inputDom.select();
    //将td的点击事件移除
    td.unbind("click");
}


3.对上面的效果进行进一步的修改,使之更加人性化

通过修改使你在修改的过程中文本的内容可以按Esc键撤销还原到修改前的状态

//在页面加载时候,就使td节点具有click点击能力
$(document).ready(function(){
    var tdNods = $("td");
    tdNods.click(tdClick);
});

//td的点击事件
function tdClick(){
    //将td的文本内容保存
    var td = $(this);
    var tdText = td.text();
    //将td的内容清空
    td.empty();
    //新建一个输入框
    var input = $("<input>");
    //将保存的文本内容赋值给输入框
    input.attr("value",tdText);
    //将输入框添加到td中
    td.append(input);
    //给输入框注册事件,当失去焦点时就可以将文本保存起来
    input.blur(function(){
        //将输入框的文本保存
        var input = $(this);
        var inputText = input.val();
        //将td的内容,即输入框去掉,然后给td赋值
        var td = input.parent("td");
        td.html(inputText);
        //让td重新拥有点击事件
        td.click(tdClick);

    });
    input.keyup(function(event){
        //1.获取当前用户按下的键值
              //解决不同浏览器获得事件对象的差异,
             // IE用自动提供window.event,而其他浏览器必须显示的提供,即在方法参数中加上event
           var myEvent = event || window.event;
           var keyCode = myEvent.keyCode;
           //2.判断是否是ESC键按下
           if(keyCode == 27){
               //将input输入框的值还原成修改之前的值
               input.val(tdText);
           }
    });
    //将输入框中的文本高亮选中
    //将jquery对象转化为DOM对象
    var inputDom = input.get(0);
    inputDom.select();
    //将td的点击事件移除
    td.unbind("click");
}
-------------------------------------------------------------------------------
最新版本js分享->
分享到:
评论

相关推荐

    jQuery获取和设置文本框光标

    这在创建富文本编辑器、自定义表单组件或实现某些特殊交互时非常有用。 首先,让我们理解基本概念。在HTML的`&lt;input type="text"&gt;`或`&lt;textarea&gt;`元素中,光标代表用户当前输入的位置。而选中文本则涉及选取一个或...

    使用Jquery实现点击文字后变成文本框且可修改

    在网页交互设计中,用户友好性和易用性...总的来说,通过jQuery,我们可以轻松地实现这种动态转换文本和文本框的功能,从而提升网页的互动性和用户体验。记住,始终关注用户的操作习惯和舒适度,使网页设计更加人性化。

    jQuery文本框创建关键词标签代码

    通过jQuery,我们可以根据需求改变标签的可编辑状态,例如设置`disabled`属性或移除事件监听器。 6. **禁用创建标签**: 当系统处于特定状态或用户无权限时,可能需要禁用创建新标签的功能。这可以通过监听文本框...

    jquery实现文本框的禁用和启用

    1. **禁用状态的样式**:禁用状态的文本框通常会呈现一种不可编辑的灰色样式,这是浏览器的默认行为,可以通过 CSS 自定义禁用元素的样式。 2. **事件绑定**:禁用的文本框不会触发任何用户交互事件,如 `focus`、`...

    在线编辑文本框.zip

    本示例"在线编辑文本框.zip"提供了一个名为ueditor的演示项目,它是一个可运行的Dome,帮助开发者了解如何集成和自定义此类功能。 Ueditor是百度开发的一款强大的富文本编辑器,支持HTML编辑,并且可以上传图片,这...

    html javascript jquery 文本框水印

    总结一下,实现HTML、JavaScript和jQuery的文本框水印功能,主要包括以下几个步骤: 1. 在HTML中创建文本框,并可选地设置`placeholder`属性。 2. 引入jQuery库和`JqWatermark.js`插件。 3. 使用`.ready()`函数确保...

    jQuery表情符号:让textarea或可编辑的div能够插入表情符号。让文本框或div带有插入表情功能

    让文本框或可编辑div添加插入表情功能。 让textarea或可编辑的div能够插入表情符号。 预览 功能特点 支持给textarea或可编辑div加上表情功能,自动识别元素类型。 支持将emoji表情添加到textarea或可编辑的div中,...

    利用jQuery实现可以编辑的表格

    【jQuery实现可编辑表格】 在网页开发中,有时我们需要创建交互性强、用户友好的表格,允许用户直接在表格内编辑数据。本示例讲解如何利用jQuery实现这一功能,特别是针对HTML表格的单元格进行编辑。这个例子的核心...

    jQuery实现实时输入字数统计

    现在,我们使用jQuery监听`textarea`的`keyup`事件,每当用户在文本框中输入或删除字符时,都会触发这个事件。我们可以在这个事件的回调函数中获取当前的输入字数,并更新`countDisplay`的文本: ```javascript $...

    可编辑的下拉框 既可以编辑,又可以下拉选择

    可编辑的下拉框 既可以编辑,又可以下拉选择 很不错的

    jquery实现点击文字可编辑并修改保存至数据库

    根据提供的文件信息,我们可以了解到一个关于如何利用jQuery实现点击页面上的文字内容,使其变为可编辑状态,并将修改后的内容保存到数据库的IT知识点。 首先,知识点涵盖的标题明确指出是“jquery实现点击文字可...

    基于jQuery实现可编辑的表格

    我们知道jQuery是一个轻便的JavaScript框架,里面封装了系统和程序常用到的一些方法,利用CSS、HTML可以将这些内容运用起来,做出各式各样好看的界面,下面小编使用jQuery实现了一个“可编辑的表格”的例子。...

    JQuery 文本框回车跳到下一个文本框示例代码

    在本示例中,我们将通过jQuery库来实现这一功能。 首先,我们需要理解jQuery的基本用法。jQuery是一个轻量级的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互等任务。在这个场景中,我们将利用...

    好用的jQuery编辑器

    而“AqiStar.TextBox.dll”可能是一个文本框控件的动态链接库,用于实现编辑器内的文本输入和编辑功能。 “NVelocity.dll”可能是一个模板引擎,用于处理“Templates”目录下的模板文件,使得用户可以方便地创建和...

    jQuery实现的精简UBB代码编辑器源码.zip

    《jQuery实现的精简UBB代码编辑器源码解析》 在Web开发中,富文本编辑器是一个不可或缺的工具,它允许用户以类似Word的方式在网页上编辑内容,同时能够生成HTML代码。UBB(Unified BBCode)是一种轻量级的标记语言...

    jQuery一步一步实现跨浏览器的可编辑表格,支持IE、Firefox、Safari、Chrome、Opera

    在网页开发中,有时我们需要为用户提供直接在表格中编辑数据的便利性,这可以通过使用jQuery实现跨浏览器的可编辑表格功能。本篇文章将详细介绍如何利用jQuery实现这一功能,支持包括IE、Firefox、Safari、Chrome和...

    jQuery实现表格文本框淡入更改值后淡出效果

    本篇文档介绍了一个使用jQuery实现的动态效果,即在网页表格中实现点击单元格后,弹出一个含有输入框的表格行,用户可在输入框中编辑原有单元格的内容,完成编辑后点击确定按钮,新值会取代原内容并淡入显示,而后原...

    JQuery实现可直接编辑的表格

    3. **事件处理**:文档讲述了如何利用JQuery的事件处理机制来实现表格的可编辑功能。当用户点击表格单元格时,会触发一个函数来处理编辑逻辑。文档中还提到了对回车键和ESC键的处理,这些都是通过监听键盘事件...

Global site tag (gtag.js) - Google Analytics