2017-08-13 55 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

相關問題