2017-08-13 50 views
-1

$(“[id^='txtYear _']”)。val();Jquery .val()with .reduce(知道是否所有值都为空)

如何知道ID为'txtYear_'的所有输入框是否为空(不等于“”)?我不能使用.reduce.val()

谢谢大家!

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="txtYear_1" value="1"> 
 
<input id="txtYear_2" value="2"> 
 
<input id="txtYear_3" value="3"> 
 
<input id="txtYear_4" value="4"> 
 
<input id="txtYear_5" value="5"> 
 
<input id="txtYear_6" value="6"> 
 
<input id="txtYear_7" value="7">

编辑:极品ES5(对于IE11)

+0

添加一个完整的工作示例有确切的问题,你有... – Dekel

+0

$(“[id^='txtYear _']“)。reduce(function(total,current){this.value ===返回this.value ===”“; })。get(); 不起作用 – Emilio

+0

不在评论中,而你错过了html。更新的问题有一个工作示例... – Dekel

回答

1

我会用纯JS为every,不知道是否jQuery有一个等价的。

let allNotEmpty = Array.from($("[id^='txtYear_']")).every(function(e) { 
 
    return e.value !== "";  
 
}) 
 

 
console.log(allNotEmpty);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="txtYear_1" value="1"> 
 
<input id="txtYear_2" value="2"> 
 
<input id="txtYear_3" value="3"> 
 
<input id="txtYear_4" value="4"> 
 
<input id="txtYear_5" value="5"> 
 
<input id="txtYear_6" value="6"> 
 
<input id="txtYear_7" value="7">

+0

听起来像我想要的!但是,这是ES5还是ES6?我需要一个代码,也将工作在IE11 – Emilio

0

您可以使用jQuery filter减少和each枚举过滤字段:

$("[id^='txtYear_']").filter(function() { 
 
    return $(this).val().length > 0; 
 
}).each(function(i, el) { 
 
    console.log($(this).val()); 
 
    $(this).css('border-color', 'green'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="foo" > 
 
    <input id="txtYear_1" value="" size="50"/> 
 
    <input id="txtYear_2" value="" size="50"/> 
 
    <input id="txtYear_3" value="some_value" size="50"/> 
 
</div>

+0

这将返回“假”? – Emilio

+0

@Emilio这将过滤并删除它们的值不是'length> 0'的所有输入字段。 –

+0

是否有可能将其降至“真”或“假”值? – Emilio

相关问题