2016-06-18 3 views
0

У меня есть кнопка 7 на веб-странице. Когда я нажимаю на btn7, я хочу проверить, сколько кнопок отключено.получение статуса отключенных кнопок с помощью JS

<button type="submit" class="btn btn-home" name= "btn-save1" id= "btn-save1" required="required">Save</button> 
<button type="submit" class="btn btn-home" name= "btn-save2" id= "btn-save2" required="required">Save</button> 
<button type="submit" class="btn btn-home" name= "btn-save3" id= "btn-save3" required="required">Save</button> 
<button type="submit" class="btn btn-home" name= "btn-save4" id= "btn-save4" required="required">Save</button> 
<button type="submit" class="btn btn-home" name= "btn-save5" id= "btn-save5" required="required">Save</button> 
<button type="submit" class="btn btn-home" name= "btn-save6" id= "btn-save6" required="required">Save</button> 

JS

<script type="text/javascript"> 
$('document').ready(function() 
{ 
       $(document).on('click', '#btn-save7', function(e){ 
       alert('test'); 
}) 
}); 
</script> 

Как я могу проверить, если все кнопки отключены?

Edit:

Я проверил эти ссылки, но они продвинулись, и я не так хорошо с JQuery. JQuery select all elements without disabled AND no readonly?

http://api.jquery.com/disabled-selector/

jQuery: Checking for disabled attribute and adding/removing it?

+2

FYI, вы должны использовать '$ (документ)' не '$ ('документ')' и во всяком случае здесь, потому что вы связывание события щелчка на 'document' , вам не нужно r eady wrapper –

+0

@ A.Wolff Спасибо, исправлено в исходном коде. – Ironic

ответ

3

Привет CalculatingMachine,

В вашем примере не было btn-save7, поэтому я решил создать его. Чтобы избежать путаницы с читателями, я переименовал его в Count Buttons.

Сначала выберите кнопки с атрибутом инвалидов, как этот button:disabled

Следующая сосчитать их, вызвав length свойство.

Проверьте этот фрагмент.

$("#btn-save7").on("click", function() { 
 
    $("#num-buttons").html($("button:disabled").length + " buttons are disabled"); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<button type="submit" class="btn btn-home" name= "btn-save1" id= "btn-save1" required="required">Save</button> 
 
<button type="submit" class="btn btn-home" name= "btn-save2" id= "btn-save2" disabled required="required">Save</button> 
 
<button type="submit" class="btn btn-home" name= "btn-save3" id= "btn-save3" required="required">Save</button> 
 
<button type="submit" class="btn btn-home" name= "btn-save4" id= "btn-save4" required="required">Save</button> 
 
<button type="submit" class="btn btn-home" name= "btn-save5" id= "btn-save5" required="required">Save</button> 
 
<button type="submit" class="btn btn-home" name= "btn-save6" id= "btn-save6" required="required">Save</button> 
 

 
<button type="submit" class="btn btn-home" name= "btn-save7" id= "btn-save7" required="required">Count Buttons</button> 
 

 
<p id="num-buttons"></p>

+0

Спасибо за ваш ответ. Я дам ему попробовать. Проголосовал. – Ironic

+0

Я счастлив, что смогу помочь. –

3

Я хотел бы добавить класс к шести кнопок, которые вам небезразличны, так что вы можете выбрать их к этому классу; Я назову его counted.

Затем в обработчик щелчка, это простой селектор с помощью переключателя :disabled вы связаны между собой:

var disabledCount = $(".counted:disabled").length; 

Если по каким-то причинам вы не хотите, чтобы добавить класс, и если кнопки действительно есть id s вы в списке, вы могли бы использовать attribute starts with селектор и not отфильтровывать #btn-save7:

var disabledCount = $("button[id^='btn-save']:disabled").not("#btn-save7").length; 
+0

Спасибо за ваш ответ. Но на самом деле я хочу проверить все 6 кнопок, если нет, тогда я переадресую на другую страницу еще покажут предупреждение. – Ironic

+0

@CalculatingMachine: Ну, в вашем вопросе говорится: «Когда я нажимаю на btn7, я хочу проверить, сколько кнопок отключено», так вот что я ответил. Но если вы просто хотите узнать, все ли они ** все ** отключены, я бы, скорее всего, использовал селектор ': enabled' и посмотрел, равен ли счет 0. –

+0

okay. Понял. Я попробую и дам вам знать. – Ironic

1

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

<button class="btn btn-home checkthis" name= "btn-save1" ...></button> 
<button class="btn btn-home checkthis" name= "btn-save2" ...></button> 
<button class="btn btn-home checkthis" name= "btn-save3" ...></button> 
... 

, а затем использовать этот CSS класс с disablced селекторе:

$(".checkthis:disabled").length 

это дает количество кнопок с ограниченными возможностями «checkthis» класса и это было бы просто проверить, если все кнопки с "checkthis" класса отключены или нет:

if($(".checkthis:disabled").length == $(".checkthis").length) { 
    console.log("all buttons are disabled"); 
} 
+0

Спасибо за ваш ответ. Проголосовал. – Ironic

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