html - 有没有办法设置输入字段值的一部分?

标签 html css forms input

我正在使用 <input>字段,我想在用户输入不同颜色时设置部分字段的样式。例如,假设 <input>具有 color: red; 的样式声明我想将它的部分更改为color: blue; .有什么办法可以做到这一点吗?

如果没有(正如我怀疑的那样),关于如何模拟这种效果同时仍然保留语义标记的任何创意?

最佳答案

您的怀疑是正确的:样式将仅应用于整个输入。

由于样式只能应用于整个元素,因此解决方案将要求每种所需颜色至少有一个元素。

考虑根据用户进行更改的点对输入字段进行划分。输入分为三部分:

  • 在应用更改之前
  • 在应用更改之后
  • 此时正在应用更改

您无法通过单个输入元素实现此目的。随着应用更改的点可能会发生变化,由这三个元素包裹的“输入”部分也会发生变化。解决方案需要 JavaScript。

您应该首先包含一个常规输入元素并放弃任何必需的着色。使用 JavaScript 将输入替换为合适的容器元素。这可以设置样式以模仿输入元素。

随着变化的发生,使用JavaScript来识别上述三个部分。根据需要将它们包裹在合适的元素(跨度是理想的)和颜色中。

为生成的替换标记考虑以下起点:

<div class="input">
  <span class="nonEdited before">foo</span>
  <span class="edited">fizz</span>
  <span class="nonEdited after">bar</span>
</div>

使用 click、keydown 和 keyup 事件找出输入的三个部分,并根据需要应用包装伪造输入的三个部分。

关于html - 有没有办法设置输入字段值的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3121683/

相关文章:

javascript - 选择一个元素而不选择父元素

javascript - .click 中的 jQuery .submit( [callback] ) 不起作用

javascript - javascript 中的新输入在单击时出现并消失

javascript - 在 Javascript 中覆盖 Bootstrap 样式

jquery - 选择链接中的增量值并分配给 var

html - 为什么父div仍然保持其子图像原始宽度的宽度?

css - 如何修复IE8中的绝对定位?

html - CSS - 在底部有文本的一行中获得 3 个 div?

php - 使用 css 设置使用变量的 php 文本样式

php - 您能否在使用 PHP 或 JavaScript 提交表单失败后重新填充文件输入?