我可以使用 CSS 选择空文本区域吗?
有没有一种方法可以选择一个文本区域,使得 jQuery 中的 $('#id_of_textarea').val()
将为 ''
?我尝试使用 :empty
。我看到 CSS 提供了一种选择空输入的方法,因为文本位于 value
属性 ([value=""]
) 中。文本区域中的文本是否有属性?
我正在寻找一个可以与 CSS 一起使用的选择器,而不仅仅是 jQuery。
Is there a way that I can select a textarea such that $('#id_of_textarea').val()
in jQuery will be ''
? I tried using :empty
. I saw that CSS provides a way to select empty inputs because the text is in the value
attribute ([value=""]
). Is there an attribute for the text in a textarea?
I'm looking for a selector that will work with CSS, not just jQuery.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
我能想到的最佳解决方案是 CSS 3 解决方法。将字段设置为必填(如果需要,可以在提交时取消设置)。然后你可以使用
Best solution I can think of is a CSS 3 workaround. Set the field to required (and unset it on submit if need be). Then you can use
这适用于除 Edge 之外的最新浏览器(目前):
因此,以 jQuery 为例,您可以选择所有空文本区域:
https://developer.mozilla.org/en/docs/Web/CSS/:placeholder-shown
this works in recent browsers except edge (at the moment):
so with jQuery for example you can pick all empty textareas:
https://developer.mozilla.org/en/docs/Web/CSS/:placeholder-shown
如果您使用 React,那么这就是解决方案:
例如,
工作演示:
Textarea - 使用 CSS 选择空文本区域
注意:在 React 中完美运行(因为状态更新导致重新绘制),如果使用 Vanilla HTML + CSS 实现,它不会提供相同的响应。
If you're using React, then this is the solution:
For instance,
Working demo:
Textarea - Select empty textarea using CSS
Note: While this works perfectly in React (because of re-painting caused by state update), It does not provide the same response if implemented using Vanilla HTML + CSS.
这工作得很好,就像输入一样:
This works fine, as with input:
您可以使用
:empty
css 伪类。请参阅 jsfiddle 中的示例。
在示例中,有一个按钮用于动态地将新的空文本区域添加到 DOM,因此您可以看到新元素也受到伪类的影响。
示例中的代码在 Firefox 5.0、Opera 11.50 和 Chromium 12 中进行了测试。
此外,您还可以看到 :empty 伪类的良好描述 此处。
You can use the
:empty
css pseudo-class.See an example in jsfiddle.
In the example there is a button for dynamically add new empty textareas to the DOM, so you can see that the new elements also are affected with the pseudo-class.
The code in the example was tested in Firefox 5.0, Opera 11.50 and Chromium 12.
Also, you can see a good description for the :empty pseudo-class here.
对于那些使用 AngularJS 的人,您可以在视图中使用 ng-class 向文本区域添加一个类以了解它是否为空。
HTML:
CSS:
这是一个 jsfiddle。
For those who are using AngularJS, you can use
ng-class
in your view to add a class to your textarea to know if it is empty or not.HTML :
CSS :
Here is a jsfiddle.