#javascript #html #jquery
#javascript #HTML #jquery
Вопрос:
У меня возникла проблема с отключением одной кнопки
Когда я нажимаю, чтобы заказать за 10 долларов, он отключает все кнопки, и я хочу, чтобы была отключена только та, которую я нажал
$(document).ready(function() {
$('.btn-checkout').click(function(e) {
$('.btn-checkout').html('proccesing order');
$('.btn-checkout').attr("disabled", true);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form method="POST">
<button type='button' class='btn-checkout'> order for $10</button>
<button type='button' class='btn-checkout'> order for $20</button>
<button type='button' class='btn-checkout'> order for $30</button>
</form>
Ответ №1:
Используйте $(this)
, который является фактическим щелкаемым элементом, к которому обращается селектор
$(function() {
$('.btn-checkout').on('click',function(e) {
$(this).html('proccesing order');
$(this).attr("disabled", true);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form method="POST">
<button type='button' class='btn-checkout'> order for $10</button>
<button type='button' class='btn-checkout'> order for $20</button>
<button type='button' class='btn-checkout'> order for $30</button>
</form>
Я бы также делегировал, чтобы вы могли добавить больше кнопок позже
$(function() {
$('#container').on('click','.btn-checkout',function(e) {
$(this).html('proccesing order');
$(this).attr("disabled", true);
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form method="POST">
<div id="container">
<button type='button' class='btn-checkout'> order for $10</button>
<button type='button' class='btn-checkout'> order for $20</button>
<button type='button' class='btn-checkout'> order for $30</button>
</div>
</form>