如何使用javascript替换textarea元素
How to replace an element by textarea using javascript
我所做的基本上是一个用户配置文件,其中包含一个文本框,用于用户对自己的描述。虽然我有一个单独的页面,用户可以在其中编辑配置文件,但我想提供一个功能,当用户将鼠标悬停在他的描述框上时,他会看到一个edit
按钮。
如果用户单击该按钮,那么他/她可以编辑描述字段本身,后端将使用Ajax更新。ajax调用和后端处理很简单,但是我如何用textarea
和submit
按钮替换html
,并再次使用javascript放回原始html。
这是我的html的样子
<div id="personalText" >
<a href="#" id="editButton"> edit </a>
<p id="descText">{{profile.desc}}</p>
</div>
当有人点击editButton
时,我想用textarea
替换personalText
内的html,其中包含descText
中的原始文本,以及update
按钮。当用户编辑文本并单击更新时,我将更新后端模型,并再次放置<a>
标记和<p>
标记。
有人能帮忙吗?我似乎知道如何做它的一部分,但不能弄清楚我将如何取代原来的结构在update
点击。
与其创建/销毁DOM元素,不如隐藏编辑<textarea/>
。
<div id="personalText" >
<div class="display">
<a href="#" id="editButton">edit</a>
<p id="descText">{{profile.desc}}</p>
</div>
<div class="edit" style="display:none;">
<input type="submit" value="Update"/>
<textarea>{{profile.desc}}</textarea>
</div>
</div>
然后你的jQuery可以简单地切换元素并处理你的ajax post。
$("input[type='submit']").on("click", function() {
$.ajax({
url:"/your/url/"
}).success(function(){
$(".display, .edit").toggle();
$("#descText").html($("textarea").val());
});
return false;
});
jsfiddle
$('#editButton').click(function(){
var text = $('descText').text();
var textArea = $('<textarea></textarea>');
textArea.value = text;
$('#personalText').replaceWith(textArea);
});
相关文章:
- CKEditor Widget-阻止编辑可编辑元素本身
- 如何设置html元素填充的动画
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 将文本和html unicode字符添加到textarea元素中
- 如何可靠地检查textarea元素在jQuery中是否有任何内部文本
- 使用textarea-tinymce插件管理动态添加和删除元素
- 我可以设置TEXTAREA元素的高度,但让用户稍后调整它的大小吗
- 如何使用javascript替换textarea元素
- 如何使textarea元素看起来像普通文本
- jQuery帮助在Textarea中添加和删除元素
- 是否可以用AJAX调用中的数据更新textarea元素?
- 从多个动态创建的HTML textarea元素发布
- 将元素HTML附加到新附加的textarea中
- 如何获得一个textarea元素在jquery中,当名称是在一个变量
- 如何改进textarea元素
- 新建<李>单击按钮时具有textarea的元素
- 以编程方式选择与textarea元素中的字符串匹配的文本(就像用鼠标一样)
- 不能在元素textarea上使用find,它是td的子元素
- angular js-ng在一个textarea元素中重复
- Textarea自动完成angularjs只有10个元素