Здравствуйте, я проверяю форму, чтобы увидеть, были ли входы заполнены. Я сохраняю кнопку отправки до тех пор, пока не будут заполнены необходимые поля. Однако, если я набираю текстовое поле, которое требуется, кнопка включается, даже если предыдущие обязательные поля не заполняются.jquery каждая функция не работает по назначению
Вот скрипка https://jsfiddle.net/v2to0fcw/1/
здесь разметка
<form action="/contact" method="post">
<div class="form-row firstName">
<p class="form-alert">Enter a valid first name.</p>
<input type="text" name="firstName" id="firstName" placeholder="First Name*" required class="form-control required">
</div>
<div class="form-row lastName">
<p class="form-alert">Enter a valid last name. Example: Smith</p>
<input type="text" name="lastName" id="lastName" placeholder="Last Name" class="form-control">
</div>
<div class="form-row phone">
<p class="form-alert">Enter a valid phone number. Example: 555 555 5555</p>
<input type="tel" name="phone" id="phone" placeholder="Phone" class="form-control">
</div>
<div class="form-row email ">
<p class="form-alert">Enter a valid email. Example: [email protected]</p>
<input type="email" name="email" id="email" placeholder="Email*" required class="form-control required">
</div>
<div class="form-row">
<input type="text" name="subject" id="subject" placeholder="Subject*" required class="form-control required">
</div>
<div class="form-row">
<textarea name="message" id="message" placeholder="Message*" required class="form-control required"></textarea>
</div>
<input type="submit" name="submit" id="submit" value="Send" disabled="disabled" class="btn btn-primary pull-right">
</form>
здесь является JQuery
$(document).ready(function()
{
(function()
{
$('.required').on('keyup change', function()
{
$('.required').each(function()
{
if (this.value == '')
{
$('#submit').attr('disabled', 'disabled'); // updated according to http://stackoverflow.com/questions/7637790/how-to-remove-disabled-attribute-with-jquery-ie
}
else
{
$('#submit').removeAttr('disabled'); // updated according to http://stackoverflow.com/questions/7637790/how-to-remove-disabled-attribute-with-jquery-ie
}
});
});
})()
Кнопка не позволит, если Вы не заполните все необходимые поля, но если Я пропустил первые три и набрал сообщение, когда кнопка включена. Что происходит не так?
Если окончательный '' не является пустой строкой, то атрибут 'disabled' кнопки удаляется; это именно то, что написано вашим кодом. –
конечным результатом вы имеете в виду textarea? Итак, если (this.value == '') предназначен только для окончательного ввода? Я также попытался, если ('.required' == '') – badsyntax
Проблема в том, что вы каждый раз добавляете и удаляете атрибут через цикл. Поэтому в конце он содержит настройку с последней итерации. – Barmar