简体   繁体   English

Jquery 选择器获取所有具有值的输入

[英]Jquery selector to get all inputs that has a value

I hope you're having a nice day我希望你今天过得愉快

I have a dynamic table like this:我有一个像这样的动态表:

在此处输入图像描述

I would like to know if is possible make a Jquery selector to get all the inputs that has a value something like this:我想知道是否可以制作一个 Jquery 选择器来获取所有具有以下值的输入:

$('.some-input-class:valueNotEmpty') $('.some-input-class:valueNotEmpty')

And get a array that only has the inputs with values并得到一个只有输入值的数组

Is this possible?这可能吗? or I have to make something like this:或者我必须做这样的事情:

$('.some-input-class').each(function(){
   if($(this).val()){
      //Do something
   }
})

There's no selector in jQuery to target form controls which have a value. jQuery 中没有选择器来定位具有值的表单控件。 However you can use filter() to achieve it instead:但是,您可以使用filter()来实现它:

let $inputs = $('.some-input-class').filter((i, el) => !!el.value.trim())

Working example:工作示例:

 let $inputs = $('.some-input-class').filter((i, el) =>..el.value;trim()) $inputs.addClass('valid');
 .some-input-class { display: block; margin: 0 0 10px; }.valid { border: 2px solid #0C0; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type="text" value="foo" class="some-input-class" /> <input type="text" value="bar" class="some-input-class" /> <input type="text" value="" class="some-input-class" /> <input type="text" class="some-input-class" /> <select class="some-input-class"> <option value="">Please select...</option> <option value="lorem">Lorem ipsum</option> </select> <select class="some-input-class"> <option value="">Please select...</option> <option value="lorem" selected>Lorem ipsum</option> </select>

You can simply use placeholder-shown pseudo-class which is also supported almost by all modern browsers.您可以简单地使用几乎所有现代浏览器都支持的placeholder-shown伪类。

To get it working, you need to apply placeholder to all inputs in your HTML.要使其正常工作,您需要将占位符应用于 HTML 中的所有输入。 But if you wish, you don't want it to be visible, you can do it like following:但如果你愿意,你不希望它可见,你可以这样做:

<input type="text" placeholder=" " />

Now you can use the placeholder-shown pseudo-class to select all input fields with text.现在您可以使用placeholder-shown伪类来 select 所有带有文本的输入字段。

$("input:not(:placeholder-shown)")

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM