Я создал предупреждающее сообщение Jquery Slidingown, которое по какой-то причине отключает кнопку «Отправить», как только она появляется.
Мой код jQuery работает идеально, пока не появится сообщение о сдвиге:
https://jsfiddle.net/godsnake/t0cswbpo/141/
$(document).ready(function(){
var limit = 3;
$("li").on("click", "a", function(e){
e.preventDefault();
if($("a.active").length >= limit) {
$("#message").slideDown();
if($(this).hasClass("active"))
{
$(this).toggleClass("active");
$("#message").slideUp();
}
}else{
$("#message").slideUp();
$(this).toggleClass("active");
}
});
});
$(document).ready(function(){
$('li:not(.active)').on("click", "a", function(e){
e.preventDefault();
if($('li:not(.active)'))
{
$('#register').prop('disabled', true);
if($(this).hasClass("active"))
{
$('li').toggleClass("active");
$('#register').prop('disabled', false);
}
}else{
$('#register').prop('disabled', false);
$(this).toggleClass("active");
}
});
});
CSS:
#message{display:none; color:red; margin-top:-5px!important;}
li {
display: inline-block;
}
HTML
<div class="mt-3 container position-relative">
<div class="m-0 p-0 mobiletitle sentence" id="message">Please only choose 3 options.</div>
<div class="mt-2 mt-md-2 mt-lg-3 list-group d-inline-block text-left">
<li> <a class="mb-3 btn btn-outline-primary sentence">Option 1</a> </li>
<li> <a class="mb-3 btn btn-outline-primary sentence">Option 2</a> </li>
<li> <a class="mb-3 btn btn-outline-primary sentence">Option 3</a> </li>
<li> <a class="mb-3 btn btn-outline-primary sentence">Option 4</a> </li>
<li> <a class="mb-3 btn btn-outline-primary sentence">Option 5</a> </li>
<li> <a class="mb-3 btn btn-outline-primary sentence">Option 6</a> </li>
<li> <a class="mb-3 btn btn-outline-primary sentence">Option 7</a> </li>
<li> <a class="mb-3 btn btn-outline-primary sentence">Option 8</a> </li>
</div>
<input id="register" disabled class="border-0 font-weight-bold btn-secondary text-uppercase sentence py-3 btn-lg btn-block" name="submit" type="submit" value="Submit Form"/>
</div>
Я пытаюсь сделать следующее:
- Кнопка отправки должна быть отключена по умолчанию
- Когда пользователь выбирает хотя бы один из параметров, кнопка становится
включено
- Если пользователь выбирает более 3 опций, ему запрещено
выбрав еще какие-либо опции, и предупреждающее сообщение JQuery Slideown
Похоже, что пользователь знает, что 3 варианта - это предел.
- Даже если появляется предупреждающее сообщение, пользователи по-прежнему могут нажимать кнопку «Отправить», если выбрана опция 1.
Но, как вы видите, проблема начинается, когда появляется сообщение, которое появляется вниз, кнопка отправки становится отключенной. Почему это происходит с кнопкой отправки? Пожалуйста, объясните подробно, а лучше покажите мне, как это делается, я новичок в jQuery и уверен, что мой код jQuery можно не только исправить, но и исправить. упрощена. Спасибо!