В общем есть форма
<form role="form">
<div class="form-group">
<label for="fio" class="text-center">Ф.И.О:</label>
<input type="text" class="form-control" id="fio" placeholder="Иванов Иван Иванович" required>
</div>
<div class="form-group">
<label for="tel" class="text-center">Телефон:</label>
<input type="text" class="form-control" id="tel" placeholder="+375291234567" required>
</div>
<div class="form-group">
<label for="tel" class="text-center">Выберите услугу:</label>
<select class="selectpicker form-control" id="price">
<?php foreach ($gyn as $item) :?>
<option value="<?=$item['id']?>"><?=$item['name']?></option>
<?php endforeach; ?>
</select>
</div>
<div class="form-group text-center">
<button type="button" class="btn btn-style-one" id="btn" data-id="1">Отправить</button>
</div>
</form>
Есть аякс, повесил его на клик
$('#btn').on('click', function ()
{
event.preventDefault();
var name = $("#fio").val();
var number = $("#tel").val();
var price = $("#price option:selected").text();
var pricenum = $("#price").val();
var category = $(this).data('id');
$.ajax(
{
/*url:'index.php?r=category/gynecology',*/
url:window.location,
data: {a:[name,number, price, category , pricenum ]},
type: 'POST',
success: function (res) {
alert('Ваш заказ принят, мы свяжемся с Вами для подтверждения заказа. Сейчас проийзодёт переадресация');
setTimeout( 'location="index.php?r=site/index";', 5);
console.log(res);
},
error: function () {
alert('321');
}
}
);
});
В чём суть. required толком не работает и форма отправляет даже если пустые поля.
Пробовал менять тип кнопки на sumbit и вешать на event submit в принципе такая же реакция. Как можно правильно сделать так чтобы аякс не отправлялся пока пока не заполнены?