检查 jquery 的多个输入的值是否为空的更短方法
Shorter way to check that value of multiple input is empty for jquery
let a = $('#plustitle').val().trim(); // input type text
let b = $('#plustags').val().trim(); // input type text
let c = $('#plustory').val().trim(); // textarea
我需要检查以上变量是否为空,即是否有值 "";
使用 jquery each
循环 - 代码很多。
有没有更短的方法。
您可以通过以下方式对其进行抽象:
function isEmpty(id) {
return ($('#' + id).val().trim() == '');
}
if(!isEmpty('plusTitle') && !isEmpty('plustags') && !isEmpty('plustory')) {
console.log('none is empty');
}
考虑到正在使用 "let",我假设您支持 ES6。
将这些值推送到数组后,您可以使用以下代码:
let a = $('#plustitle').val().trim(); // input type text
let b = $('#plustags').val().trim(); // input type text
let c = $('#plustory').val().trim(); // textarea
let someValues = [a, b, c]; // if separate variables are not required, directly push to array
someValues.forEach(x =>{ if(!x) {
//do operation when empty
}});
如果我们使用空字符串 falsy 这一事实,我们可以通过
实现您的要求
if (!(a && b && c)) {
// one of them is empty
}
加入所有变量并检查结果的长度
let a = $('#plustitle').val().trim();
let b = $('#plustags').val().trim();
let c = $('#plustory').val().trim();
if ((a+b+c).length == 0)
console.log("empty");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="plustitle" value="">
<input type="text" id="plustags" value="">
<input type="text" id="plustory" value="">
您还可以简化代码并使用一个选择器
var values = $('#plustitle, #plustags, #plustory').map(
(i, ele) => ele.value.trim()
).toArray().join('');
if (values.length == 0)
console.log("empty");
var values = $('#plustitle, #plustags, #plustory').map(
(i, ele) => ele.value.trim()
).toArray().join('');
if (values.length == 0)
console.log("empty");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="plustitle" value="">
<input type="text" id="plustags" value="">
<input type="text" id="plustory" value="">
let a = $('#plustitle').val().trim(); // input type text
let b = $('#plustags').val().trim(); // input type text
let c = $('#plustory').val().trim(); // textarea
我需要检查以上变量是否为空,即是否有值 "";
使用 jquery each
循环 - 代码很多。
有没有更短的方法。
您可以通过以下方式对其进行抽象:
function isEmpty(id) {
return ($('#' + id).val().trim() == '');
}
if(!isEmpty('plusTitle') && !isEmpty('plustags') && !isEmpty('plustory')) {
console.log('none is empty');
}
考虑到正在使用 "let",我假设您支持 ES6。 将这些值推送到数组后,您可以使用以下代码:
let a = $('#plustitle').val().trim(); // input type text
let b = $('#plustags').val().trim(); // input type text
let c = $('#plustory').val().trim(); // textarea
let someValues = [a, b, c]; // if separate variables are not required, directly push to array
someValues.forEach(x =>{ if(!x) {
//do operation when empty
}});
如果我们使用空字符串 falsy 这一事实,我们可以通过
实现您的要求if (!(a && b && c)) {
// one of them is empty
}
加入所有变量并检查结果的长度
let a = $('#plustitle').val().trim();
let b = $('#plustags').val().trim();
let c = $('#plustory').val().trim();
if ((a+b+c).length == 0)
console.log("empty");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="plustitle" value="">
<input type="text" id="plustags" value="">
<input type="text" id="plustory" value="">
您还可以简化代码并使用一个选择器
var values = $('#plustitle, #plustags, #plustory').map(
(i, ele) => ele.value.trim()
).toArray().join('');
if (values.length == 0)
console.log("empty");
var values = $('#plustitle, #plustags, #plustory').map(
(i, ele) => ele.value.trim()
).toArray().join('');
if (values.length == 0)
console.log("empty");
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="plustitle" value="">
<input type="text" id="plustags" value="">
<input type="text" id="plustory" value="">