Более короткий способ проверить, что значение множественного ввода пусто для jquery - PullRequest
0 голосов
/ 01 декабря 2018
let a = $('#plustitle').val().trim();  // input type text
let b = $('#plustags').val().trim(); // input type text
let c = $('#plustory').val().trim(); // textarea

Мне нужно проверить, пуста ли какая-либо из перечисленных выше переменных, т.е. иметь значение "";

Используя цикл jquery each - кода много.

Есть ли способ сделать это более коротким способом.

Ответы [ 4 ]

0 голосов
/ 01 декабря 2018

Объединить все переменные и проверить длину результата

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="">
0 голосов
/ 01 декабря 2018

учитывая, что используется 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
   }});
0 голосов
/ 01 декабря 2018

Если мы используем тот факт, что пустая строка будет ложь , мы можем выполнить ваше требование с

if (!(a && b && c)) {
  // one of them is empty
} 
0 голосов
/ 01 декабря 2018

Вы можете абстрагировать это следующим образом:

function isEmpty(id) {
  return ($('#' + id).val().trim() == '');
}

if(!isEmpty('plusTitle') && !isEmpty('plustags') && !isEmpty('plustory')) {
  console.log('none is empty');
}
...