выбрать правильный атрибут value из button jquery

195
27 марта 2018, 00:14

Есть 3 кнопки

<button type="submit" onclick="send_comm(1)" class="mbutton" value="1" >One</button>
<button type="submit" onclick="send_comm(2)" class="mbutton" value="3">Two</button>
<button type="submit" onclick="send_comm(3)" class="mbutton" value="2">Three</button>

есть функция обработчик

function send_comm(e) {
        $.post("../comms", {'m': e, 'c': $(".mbutton").val() });
        return false;
    }

При нажатии на любую кнопку передает значение атрибута value в обработчик только из первой кнопки. Подскажите как правильно использовать this что бы он передал именно значение атрибута где была нажата кнопка

Answer 1

$(".mbutton").on("click", function(){ 
   $.post("../comms", {'m': $(this).data("num"), 'c': $(this).val() }); 
   return false; 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<button type="submit" class="mbutton" data-num="1" value="1" >One</button> 
<button type="submit" class="mbutton" data-num="2" value="3">Two</button> 
<button type="submit" class="mbutton" data-num="3" value="2">Three</button>

UPD: смена текста кнопки

$(".mbutton").on("click", function() { 
  var obj = $(this); 
  $.post("../comms", { 
      'm': obj.data("num"), 
      'c': obj.val() 
    }) 
    .done(function() { 
      obj.text("Выключить модуль " + obj.data("num")); 
    }); 
  return false; 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<button type="submit" class="mbutton" data-num="1" value="1">Включить модуль 1</button> 
<button type="submit" class="mbutton" data-num="2" value="3">Включить модуль 2</button> 
<button type="submit" class="mbutton" data-num="3" value="2">Включить модуль 3</button>

READ ALSO
перебор элементов объекта с помощью jQuery $.each

перебор элементов объекта с помощью jQuery $.each

Необходимо получить данные из filename, raw_url и languageJS начал изучать вчера, нужна критика

191
Не срабатывает таймаут в функции [дубликат]

Не срабатывает таймаут в функции [дубликат]

На данный вопрос уже ответили:

200
Возможно ли RTL и LTR одновременно в той же форме?

Возможно ли RTL и LTR одновременно в той же форме?

Дано, форма на сайте который rtl, форма обратной связи, соответсвенно тоже rtl (поля в форме text-align: right)Есть товарищ который утверждает что общепринятая...

188