Javascript 如何使输入文本字段中的一些文本变为粗体?

Javascript 如何使输入文本字段中的一些文本变为粗体?,javascript,html,text,input,bold,Javascript,Html,Text,Input,Bold,我试图在输入文本字段中获取特定于粗体的文本。我不知道该怎么做,因为html代码不是在文本字段中解释的,所以像这样的东西都不起作用。可以只加粗一些文本吗?像bold()这样的方法仅在字符串周围添加 谢谢可能的解决方案是使用可编辑的div,如下所示: <div contentEditable="true"> Lorem <b>ipsum</b> dolor </div> 同侧阴唇 如果您试图以表单形式提交此值,则必须使用JavaScrip

我试图在输入文本字段中获取特定于粗体的文本。我不知道该怎么做,因为html代码不是在文本字段中解释的,所以像
这样的东西都不起作用。可以只加粗一些文本吗?像bold()这样的方法仅在字符串周围添加


谢谢

可能的解决方案是使用可编辑的div,如下所示:

<div contentEditable="true">
    Lorem <b>ipsum</b> dolor
</div>

同侧阴唇

如果您试图以表单形式提交此值,则必须使用JavaScript获取此div的innerHTML并将其分配给隐藏的输入或其他内容。

这取决于您希望支持的浏览器。如果您只想支持HTML5浏览器,只需插入一个设置了contenteditable标志的div,并使用css将其样式设置为输入

<div contenteditable>Text <b>bold</b></div>
文本粗体
如果粗体显示在非常受控制的区域,则可以执行以下操作:

<div>
    <input type="text" style="font-weight: bold;" value="Bold text" />
    <input type="text" value="This is not" />
</div>

使用CSS设置样式,使用JS管理开销。不过,这可能很快就会变得难看。

这里有一个技巧

输入字段超过一个范围。使用函数示例,将前3个字符以粗体显示。 使用较旧的浏览器可能会遇到透明度问题。在这种情况下,您可以不使用粗体效果而保留正常输入字段

<!DOCTYPE html>
<html lang="en">
<head>
    <title>transp</title>
    <style>
        div{
            position:relative;
        }
        input, span{
            top:0;
            position:absolute;
            width:120px;
        }
        span{
            top:2px;
            left:2px;
            z-index:1;
            overflow:hidden;
        }
        input{
            background:transparent;
            z-index:2;
        }
    </style>
</head>
<body>
<div>
    <input onkeyup="bold3(this)" />
    <span id="back"></span>
</div>
<script>
function bold3(inp){
    inp.style.color = 'transparent';
    var span = document.getElementById('back');
    span.innerHTML = 
        '<b>' + 
        inp.value.substr(0, 3) + 
        '</b>' + 
        inp.value.substr(3);
}
</script>
</body>
</html>

运输
div{
位置:相对位置;
}
输入,跨度{
排名:0;
位置:绝对位置;
宽度:120px;
}
跨度{
顶部:2个;
左:2px;
z指数:1;
溢出:隐藏;
}
输入{
背景:透明;
z指数:2;
}
功能3(inp){
inp.style.color='透明';
var span=document.getElementById('back');
span.innerHTML=
'' + 
输入值substr(0,3)+
'' + 
输入值substr(3);
}

我们需要类似于android视图的东西,它允许自定义html标记、链接识别等本地功能。。。这就是问题所在。

拥有这样一个东西最真实的方法是构建自己的自定义元素


您可以创建自己的
元素,并自定义自己的输入。

不在简单的输入字段中。你不会,除非你创建了一个完全覆盖输入的元素,那完全是一场噩梦。RTE的做法是使用iframe对内容进行复制。重复问题如下@khaled_webdev:不是重复。这个问题是关于整个文本输入的加粗。这个问题是关于只加粗文本输入的一部分。好的,如何定义哪些文本将加粗我将给这个答案一个机会,我在我正在工作的页面之外测试了它,它似乎工作得很好。感谢你开启了一条不同寻常的旅程,沿途可能会带来一些惊喜。另一种方法是在输入字段中键入格式化结果,并将其置于格式化结果下方。就像你在这里回答问题。这可能是最简单的解决方案,如果我不能让麦克的解决方案在实际页面上工作,我肯定会用这个。实际上,我试图获取innerHTML,以便表单能够获取它,但我没有成功,它只是忽略了html代码。这可能是因为我使用了GET而不是POST吗?@clinchergt:我必须看看你用来帮助实现这一点的一些示例代码。