我有一个输入框,希望在第10个字符后将字符变为红色。
目前我已经实现了以下代码:
var street_1 = document.getElementById('street_1');
street_1.style.color = "red";
我试图改变所有字符的颜色,使用了以下代码:
street_1.style.color = "red";
但是,这显然不起作用,因为.style
只适用于整个字段,而不仅仅是该值。
由于我对JS完全是新手,真的不知道如何解决这个问题。
我有一个输入框,希望在第10个字符后将字符变为红色。
目前我已经实现了以下代码:
var street_1 = document.getElementById('street_1');
street_1.style.color = "red";
我试图改变所有字符的颜色,使用了以下代码:
street_1.style.color = "red";
但是,这显然不起作用,因为.style
只适用于整个字段,而不仅仅是该值。
由于我对JS完全是新手,真的不知道如何解决这个问题。
HTML:
<div>
<input type="text">
<span class="text"></span>
</div>
input {
opacity: 0;
width: 100%;
}
div {
position: relative;
border: 1px solid #000;
}
.text {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
}
.red {
color: red;
}
JS:
var span = document.querySelector('span');
var input = document.querySelector('input');
input.addEventListener('keydown', function(evt) {
var value = evt.target.value;
span.innerHTML = value.substring(0, 10) + '<span class="red">' + value.substring(10) + '</span>'
});
var span = document.querySelector('span');
。 - Muhammad Hamada<input type="text" value="my <em style='color: red;'>test</em>">
" 是不可能的。<input type="text" value="my test" style="color: red;">
" 是标记文本的唯一方式。注意:如果我明确需要一个<input>字段而不仅仅是用户可编辑的文本,则此解决方案将无法工作!
这是一个相当古老的问题,但也许有人会发现这个解决方案有用。 它使用了contenteditable标签,允许用户在普通的HTML元素中输入/更改文本,并使用JS来检查和着色文本。
例如,字段检查还可以使用“onkeyup”进行即时反馈,但这也会将文本光标重置到字段的开头。
HTML:
<a id="sample_id" onblur="color_overlength_func('sample_id', 20)" contenteditable="true">Some Text</a>
JS:
function color_overlength_func(textfield_id, max_length) {
let text_temp = document.getElementById(textfield_id).innerHTML;
if (text_temp.length >= max_length) {
let text_OK = text_temp.substr(0, max_length);
let text_to_long = text_temp.substr(max_length);
document.getElementById(textfield_id).innerHTML = "" + text_OK + "<em style='color:red;'>" + text_to_long + "</em>";
}
}
您可以在这里找到一个可用的fiddle:https://jsfiddle.net/kyh9803c/
你可以使用CSS。虽然JavaScript库需要每次加载。
你的意思是这样的吗?
<div>
HELL<span class="red" style="color:red">O</span>
</div>
<em>你的字符串</em>
并使用 CSS 对该部分应用颜色。 - chirag satapara