使用jQuery编辑可编辑的文本功能

时间:2010-10-22 21:55:26

标签: jquery function hide show edit

我有一个图像按钮,当我点击它时,我想要一个特定的字段从文本转到可编辑的文本字段,有点像动态编辑按钮。

所以我有一些带有特定id的纯文本(即.id =“text1”),当我点击按钮时,文本会变为可编辑的字段,可能是$("#text1").hide();然后是{{1}但是在中间我需要给字段赋值文本,然后当我单击按钮保存时我应该隐藏输入字段并只显示带有新值的文本。

非常感谢任何帮助。

谢谢:D

3 个答案:

答案 0 :(得分:5)

给定一个输入字段,带有id="text1"段落和一个按钮。

<input type="text" />
<p id="text1">Lorizzle ipsizzle dolizzle sit amizzle, consectetuer adipiscing yo mamma.</p>
<button>Copy</button>

这个简单的jQuery将复制段落中的文本,隐藏它并使用段落中的文本显示输入。

$("button").click(function() {
   $("input").val(
       $("#text1").hide().text()
   ).show();
});

Here's a sample

为了好玩,我写了一个小脚本,为段落启用<editable>功能。只需在任何段落中添加一个.editable类,jQuery就可以完成剩下的工作。我没有扩展它以允许多次编辑,我几乎开始编写保存到数据库的AJAX调用因为我很无聊。 但是,因为阳光明媚,我以为我宁愿去海边。这是我的代码和样本。

$(".editable").each(function(i) {
    var $this = $(this);
    $this.attr("id", "orig-" + i);

    var $edit = $("<button />")
    .text("edit")
    .attr("id", "update-" + i)
    .click(function() {
        var $input = $('<input type="text" />')
            .attr("id", "edit" + i)
            .val($this.text());

        var $save = $('<button>Save</button>')
            .click(function() {
                var $new = $("<p />").text($input.val());
                $input.replaceWith($new);
                $(this).hide();
            });
        $(this).replaceWith($save);

        $this.replaceWith($input);
    });

   $(this).after($edit)
});

<强> SAMPLE

您真的不需要所有ID,但如果您要使用新值进行POST,则可以轻松引用这些元素。

答案 1 :(得分:0)

还不错。文本进入文本字段的值区域。所以从文本区域获取它,将其保存在临时变量中,并将其放在文本字段中。

实际上,你甚至不需要我不认为的温度,它应该看起来像

$('#field1').val($('#text1').text)

请注意,这是未经测试的。您可能会发现this SO article也很有价值。

答案 2 :(得分:0)

&#13;
&#13;
$(document).ready(function(){

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

    $('#text1').html('<input id="no" size="'+$(this).text().length+'" type="text" value="'+ $('#text1').text() + '">');
      
    $('#mod').hide();

    $('#sav').show();

    });

    $('#sav').click(function(){
						     
    // here code to save data in database

    });   
    });    
 
 
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
    <td id="text1"> text </td>
    <input type="button" id="mod" name="modify"  value="modify" />
    <input type="submit" name="submit" id="sav" value="save" />
    </table>
&#13;
&#13;
&#13;