Jquery:单击时在输入和文本之间切换

标签 jquery html input

我需要在点击时在输入和文本之间切换。类似于实时编辑之类的东西。

我写了这段代码,但它不起作用。

HTML:

<span class="editInput">Change the value on click</span>
<button>Click me</button>

JS:

var editmode = false;

$('button').on('click',function(){
    if(editmode){    
        $('.editInput').replaceWith(function(){
           return '<span class='+this.className+'>'+this.value+'</span>';
           editmode = false;
        })
    }else {
        $('.editInput').replaceWith(function(){
           return '<input type="text" value='+this.text+' class='+this.className+'/>';
           editmode = true;
        })    
    }

})

有人可以帮助我吗?

最佳答案

看看这个 Fiddle 。它不是很优雅,但我认为这是比你所做的更快、更干净的解决方案。如果您还有其他问题,请告诉我。

<div>
    <input/>
    <span>test</span>
</div>
<button>Update</button>

span {
    display:none;
}

$('button').on('click',function(){
    if($("input").is(":visible")) {  
        $("input").hide();
        $("span").text(
            $("input").val()
        ).show();
        $("button").text("Edit");
    } else {
        $("span").hide();
        $("input").text(
            $("span").val()
        ).show();
        $("button").text("Update");
    }
});

关于Jquery:单击时在输入和文本之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24376302/

相关文章:

html - HTML <label> 标签中的 "for"属性有什么作用?

c++ - 我想接受用户输入并在我的 shell 环境中输出它

jquery - Focusout 事件在输入事件 jQuery 中的第一次激活时不起作用

jquery - 用简单的 Jquery 替换 Div

html - CSS - 如何将元素宽度填充为自身宽度的 50%?

java - 具有 HTML 命名操作和助记符的 JButton

javascript - Google map 的 KML 坐标

Java - 如何在一个输入中输入多行文本

javascript - 已传递给 long 的 URL

javascript - CodeIgniter - 使用 setInterval 自动从数据库获取数据