【问题标题】:Is it possible to use CSS selector for textarea value?是否可以将 CSS 选择器用于 textarea 值?
【发布时间】:2021-03-01 04:20:00
【问题描述】:

我知道如何在 JavaScript/jQuery 中做到这一点,但我想知道是否有办法在 CSS 中做到这一点?

我知道我们可以使用以下方法定位包含字符串的占位符:

textarea[placeholder*="WORK"]{
    background: purple;
}

值有类似的吗?

我尝试了textarea[value*="MY_STRING"],但这可能不起作用,因为 textarea 的值与input 不同,它不是属性。

【问题讨论】:

    标签: javascript html css


    【解决方案1】:

    不,因为 textarea 目前只支持以下属性:

    autocapitalize 
    autocomplete
    autocorrect 
    autofocus
    cols
    form
    maxlength
    minlength
    placeholder
    readonly
    required
    rows
    spellcheck
    wrap
    

    https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea#attributes

    即没有基于用户所做的事情

    【讨论】:

    【解决方案2】:

    我什么都没有。但是,如果您真的想使用 textarea 中的值,则可能需要通过添加 data-info 属性并使文本与值相似来复制信息。然后使用data属性选择具体的textarea。这不是一个好方法,但只是认为它可能会有所帮助

    <textarea data-info="My String">My String</textarea>
    

    css可能是这样的

    textarea[data-info="My String"]{ ....}
    

    同样,这不是最好的方法。

    【讨论】:

    • 这其实是个好主意。可以在 textarea 上设置oninput 处理程序,将data-info 修改为this.dataset.info=this.value;,它可以在没有任何外部JS 的情况下工作。 CSS 还可以使用*= 代替= 来实现contains 行为。
    【解决方案3】:

    您可以为此使用&lt;input&gt; 元素,方法是给它一个模式并使其成为必需,然后使用CSS :valid 伪类。这不适用于&lt;textarea&gt;,因为它不支持模式属性。

    input:valid{
        background-color: purple;
    }
    &lt;input type="text" pattern="^.*MY_STRING.*$" required/&gt;

    【讨论】:

    • 不幸的是,我的问题是关于不支持模式匹配的 textarea:stackoverflow.com/questions/13643417/…
    • @PranoyC 我知道这一点。我提供了一种解决方法。
    • 好的,谢谢。请按原样保留答案,因为它可能对可以使用该解决方法的未来用户有所帮助。
    猜你喜欢
    • 1970-01-01
    • 2011-06-27
    • 2022-09-23
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 2017-09-01
    • 2011-03-22
    • 2013-07-30
    相关资源
    最近更新 更多