Здравствуйте, как заменить input [type=submit] на button [type=submit]?

385
29 июня 2017, 03:14

Здравствуйте, как заменить input [type=submit] на button [type=submit] через javascript, input кнопки невидимы и обычным способом их не заменить, а требуется сделать хорошее оформление для кнопок с before и after, на странице их несколько, replacewidth не помог.

Answer 1

// Расширяем $.fn.attr для получения списка всех атрибутов (https://stackoverflow.com/questions/14645806/get-all-attributes-of-an-element-using-jquery) 
(function(old) { 
  $.fn.attr = function() { 
    if(arguments.length === 0) { 
      if(this.length === 0) { 
        return null; 
      } 
 
      var obj = {}; 
      $.each(this[0].attributes, function() { 
        if(this.specified) { 
          obj[this.name] = this.value; 
        } 
      }); 
      return obj; 
    } 
 
    return old.apply(this, arguments); 
  }; 
})($.fn.attr); 
 
 
// Сам input  
var input = $('.btn-block'); 
 
// Заменяем на button c сохранением всех атрибутов 
input.replaceWith( 
  $('<button />') 
    .attr(input.attr()) 
    .text(input.val()) 
); 
 
// Просто смотрим что получилось 
$('<p />').text($('div').html()).appendTo($('div'));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<div> 
  <input class="btn-block" name="sbm" type="submit" value="Отправить"> 
</div>

READ ALSO
Как работать с Promise?

Как работать с Promise?

ПриветДопустим, что я хочу вывести какой-то блок на странице:

414
Изменить caption в fancybox 3

Изменить caption в fancybox 3

Есть фотогалерея на facybox 3Нужно под каждым фото добавить блок, который содержит текст и ссылку

320