Предложение, вы можете сделать это проще с помощью следующего кода.
функция ниже сканирует все поля ввода под элементом fieldset
$ ("fieldset * [name]"). each ....
проблема выше - многократное оповещение, что если у вас много входов, оно будет оповещать каждый вход, что не будет хорошо для пользователей :) вместо этого вы можете сделать это
alert(error1.toString().replace(/,/g, "\n"));
для одновременного оповещения о списках ошибок.
string = $ ('input [name = "username"]'). Val ('');
это на самом деле очищает ваше значение ... так что ничего не даст вам в console.log ().
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<fieldset>
<input type="text" name="name" value="" placeholder="name"/><br/><br/>
<input type="text" name="username" value="" placeholder="username"/><br/><br/>
<button onclick="error()">check</button>
</fieldset>
<script>
function error() {
var error1 = [];
var list_of_values = [];
$("fieldset *[name]").each(function(){
var inputItem = $(this);
if(inputItem.val()) {
return list_of_values.push(inputItem.val());
}
error1.push('Fill in the '+inputItem.attr('name')+' field!')
});
if(error1.length > 0) {
console.log(error1);
alert(error1.toString().replace(/,/g, "\n"));
}
if(list_of_values.length > 0) {
console.log(list_of_values);
}
}
</script>