Как передать сумму доставки в data-price у кнопки input?

97
15 февраля 2021, 03:00

Есть кнопка

<input type="email" id="email" required name="email" class="text-input" data-price-for-one="0" data-price="0">

и плагин Boxberry, в котором при выборе пункта выдачи определяется сумма доставки:

document.getElementById('js-pricedelivery').innerHTML = result.price;

Вопрос: как передать эту стоимость в "data-price"?

Answer 1

Значение data-bubu можно поменять через свойство element.dataset.bubu
P.s. сделаем вид, что у вас там хитрый код и невозможно вместо innerText прямо записать и тут, и там = result.price;

let delivery = document.getElementById('js-pricedelivery'); 
 
let rad = document.querySelectorAll('.rad');  
 
for( let i = 0; i < rad.length; i++ ) { 
  rad[i].addEventListener('change', function(){ 
 
    for( let u = 0; u < rad.length; u++ ){ rad[u].dataset.price = 0; } 
 
    this.dataset.price = delivery.innerText; 
     
    //Ненужное демо 
    demo.innerText = `Теперь у радио номер ${(i+1)} data-price="${delivery.innerText}", а у остальных - 0` 
  }); 
}
.flaticon-check { 
  display: inline-block; 
  position: relative; 
  width: 180px; 
  border: 1px solid #cc006c; 
  border-radius: 5px; 
  padding: 8px; text-align: center; 
  cursor: pointer; 
  user-select: none; 
} 
 
.flaticon-check:hover { 
  background-color: #fee; 
} 
 
.rad { display: none; } 
 
.rad:checked + .flaticon-check::after { 
  content: ''; 
  position: absolute; 
  width: 6px; height: 10px; 
  background-color: transparent; 
  top: -7px; right: 2px; 
  border-right: 1px solid white; 
  border-bottom: 1px solid white; 
  transform: rotate(40deg); 
} 
.rad:checked + .flaticon-check::before { 
  content: ''; 
  position: absolute; 
  width: 18px; height: 18px; 
  background-color: #dd0033; 
  top: -8px; right: -4px; 
  border-radius: 50px; 
}
<input class="rad" id="radio45" type="radio" name="radio3" data-price-for-one="0" data-price="0"> 
<label class="flaticon-check" for="radio45">В пункт самовывоза</label> 
 
<input class="rad" id="radio46" type="radio" name="radio3" data-price-for-one="0" data-price="0"> 
<label class="flaticon-check" for="radio46">До метро</label> 
 
<input class="rad" id="radio47" type="radio" name="radio3" data-price-for-one="0" data-price="0"> 
<label class="flaticon-check" for="radio47">До адреса</label> 
 
<p>Стоимость доставки: <span id="js-pricedelivery"><b>153</b></span></p> 
 
<p id="demo"></p>

READ ALSO
Высота блока под картинку с &ldquo;position: absolute&rdquo;

Высота блока под картинку с “position: absolute”

У меня в блоке есть картинка со свойством "position", которое имеет значение "asbolute"Картинка намного больше блока, и мне бы хотелось, чтобы блок...

126
Как прижать footer к низу страницы

Как прижать footer к низу страницы

Footer находится посередине страницы и никуда не двигаетсяПодскажите, пожалуйста, в чем проблема?

116
Как работает этот метод LSB стеганографии?

Как работает этот метод LSB стеганографии?

Два вопроса по программе, использующую метод LSB СтеганографииДело в том, что у меня немного проблемы с понимаем того, зачем нужна та или иная...

107
Ошибка компилятора C3646 при сборке проекта c++

Ошибка компилятора C3646 при сборке проекта c++

Есть два класса, имеющие экземпляры друг друга:

83