2016-06-03 4 views
0

У меня есть 4 поля ввода, и я хочу проверить, имеет ли хотя бы 1 значение. Если у меня нет значений, которые я хочу вернуть.Проверьте, есть ли хотя бы одно поле ввода из многих значений

Вот что у меня есть, и я знаю, если он не работает, потому что он не вводит оператор if, если ничего не было введено.

if ($('#Name').val() != "" && $('#State').val() != "" && $('#City').val() != "" && $('#Zip').val() != "") { 
 
    showAlert("You need to select at least one of the following: Name, State, City, or Zip", 'error'); 
 
    return; 
 
}

, если никто не имеет значение, я хочу, чтобы показать сообщение и вернуться без дальнейшей обработки.

+4

Итак, что искусство вашего кода не работает? Ваш '! =' Должен быть, вероятно, '=='? В основном вы делаете 'имеет ли он значение &&, имеет ли оно значение &&, имеет ли оно значение &&, имеет ли оно значение – putvande

+0

Я не знаю, правильная ли это логика? – user1186050

+0

Если ** any ** имеет значение: '$ ('# Name'). Val() || $ ('# State'). Val() ... ' –

ответ

5

Так вместо того, чтобы проверить, что значение не пуст, вы должны проверить, что они пусты:

if (!$('#Name').val() && !$('#State').val() && !$('#City').val() && !$('#Zip').val()) { 
    return alert("You need to select at least one of the following: Name, State, City, or Zip", 'error'); 
} 

Вы можете также поместить alert после return, чтобы сделать его короче.

Fiddle

+0

Второй пример не работает. Консоль.log ($ ('# Name, #State, #City, #Zip'). Val()) печатает только первое значение элемента. – leojg

+0

Хороший улов. Я удалил этот пример. благодаря – putvande

0

Вы можете выбрать все inputs тип text и фильтровать их проверки значения присутствуя:

$(function() { 
    $("#Check").on("click", function() { 
    // Will return the inputs containing value. 
    var anyValue = $("input[type=text]").filter(function() { 
     return $(this).val().trim() !== ""; 
    }); 

    // If there's at least one containing any value. 
    console.log(anyValue.length !== 0); 
    }); 
}); 

Я считал ниже разметки:

<input name="Name" id="Name" type="text" placeholder="Name" /> 
<input name="City" id="City" type="text" placeholder="City" /> 
<input name="State" id="State" type="text" placeholder="State" /> 
<input name="Zip" id="Zip" type="text" placeholder="Zip" /> 
<button id="Check">Check</button> 

Demo

Смежные вопросы