html中span里面有占位符,jquery – 当span元素不包含文本时,请填充占位符文本

本文探讨了如何使用HTML的contenteditable属性实现一个无缝的输入字段。具体包括使用<span>元素来显示默认提示文本,以及如何在用户开始输入时清除这些提示。解决了当用户清空文本时元素变为不可编辑的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在得到一个很好的答案后,我发现这可能是

Placeholder in contenteditable – focus event issue的重复

我有一个HTML< span>元素与contenteditable =“true”.我的目标是利用span元素创建一个无缝的“输入”字段.我在解决以下问题时遇到问题:

> DOM加载< span> “制作新标签”的可编辑和默认文字.

>当用户点击< span>时文字更新说’开始打字..’

>在第一次按键时,删除< span>文本并开始填写用户输入

>如果< span>没有文字,用户仍在编辑,用“开始输入…”替换文字

>如果< span>没有文字,用户没有互动,用’制作新标签’替换文字.

它的工作原理除了当用户正在编辑元素并清除所有文本时,该元素将折叠并变为不可编辑.我需要确保< span>中的文本始终存在或者我需要找到处理这些案件的另一种方法

这是我正在使用的元素:

*注意:我使用的是jQuery,Bootstrap和FontAwesome

Make a new tag ..

而我的javascript:

$('#new-tag').click(function(){

if( $(this).data('editing') !== 'active'){

$(this).text('Start typing ..');

}

});

// i do it this way because when .text('') is used,the breaks

$('#new-tag').keydown(function(e){

if( $(this).data('editing') !== 'active'){

$(this).text(String.fromCharCode(e.charCode));

}

$(this).data('editing','active');

});

$('#new-tag').change(function(){

if( $(this).data('editing') == 'active' && $(this).text() == ''){

$(this).text('Make a new tag ..');

$(this).removeData('editing');

}

});

有人可以让这种魔力发生吗?我发布的Here is a fiddle.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值