Динамическое изменение значения переключателя

У меня есть значение переключателя (количество) и значение флажка (количество) когда кто-то нажимает кнопку флажка, сумма была добавлена ​​к сумме значения переключателя.

<label><input type = "checkbox" value = "500"> Include Fare (Rs.500/-)</label>

<label><input type = "radio" name = "optradio" value = "4700">Price : 4700</label>

Если покупатель установит флажок, значение радиокнопки будет отображаться как 5200.

Привет, Джай, добро пожаловать в Stack Overflow. Я хотел бы помочь ответить на ваш вопрос, но, к сожалению, он не соответствует стандартам качества для этой формы. Прочтите, пожалуйста, «Как задать вопрос» SO (stackoverflow.com/help/how-to-ask) и обновите свой пост. Тогда буду рада помочь :)

nmg49 05.09.2018 04:56
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
1
819
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

У меня нет особой информации в вашем вопросе, чтобы помочь вам, но я создал этот пример

<!DOCTYPE html>
<html>
<body>

<form>
  <input  onclick = "check1()"   type = "radio" name = "check1">check1<br>
  <input  onclick = "check2()"  type = "radio" name = "check2">check2
</form>



<script>
function check1() {//when selected check1 do this
   //todo
}
function check2() {//when selected check2 do this
    //todo
}
</script>

</body>
</html>
Ответ принят как подходящий

Новое обновление

HTML:

<label><input onclick = "increasePrice(this)" type = "checkbox" value = "500"> Include Fare (Rs.500/-)</label>

<label><input onclick = "increasePrice(this)" type = "checkbox" value = "800"> Include Other Fare (Rs.800/-)</label>

<label><input class = "price-input" type = "radio" name = "optradio" value = "4700">Price : <span class = "price">4700</span></label>

<label><input class = "price-input" type = "radio" name = "optradio" value = "2000">Price 1: <span class = "price">2000</span></label>

Javascript:

function increasePrice(checkbox) {
  var increase = parseInt(checkbox.value);
  debugger;
  var price_inputs = document.getElementsByClassName("price-input");
  var price_span = document.getElementsByClassName("price");
  for(var i = 0; i < price_inputs.length; i++) {
    var price = price_inputs.item(i);
    var newValue =  parseInt(price.value);
    if (checkbox.checked){
      var newValue = newValue + increase;
    } else {
      var newValue = newValue - increase;
    }
    price_span.item(i).innerHTML = newValue;
    price.value = newValue;
  }
};

Он обновляет текст и значение radio и идет в одну сторону, а затем в другую, если флажок не установлен, цена соответственно снижается. Кроме того, он работает с несколькими флажками и переключателями без необходимости изменять Javascript.

Вы можете проверить это здесь.

Вот это все вместе:

<!DOCTYPE html>
<html>
<body>

<form>
  <label><input onclick = "increasePrice(this)" type = "checkbox" value = "500"> Include Fare (Rs.500/-)</label>
  <label><input onclick = "increasePrice(this)" type = "checkbox" value = "800"> Include Other Fare (Rs.800/-)</label>
  <label><input class = "price-input" type = "radio" name = "optradio" value = "4700">Price : <span class = "price">4700</span></label>
  <label><input class = "price-input" type = "radio" name = "optradio" value = "2000">Price 1: <span class = "price">2000</span></label>
</form>



<script>
  function increasePrice(checkbox) {
    var increase = parseInt(checkbox.value);
    var price_inputs = document.getElementsByClassName("price-input");
    var price_span = document.getElementsByClassName("price");
    for(var i = 0; i < price_inputs.length; i++) {
      var price = price_inputs.item(i);
      var newValue =  parseInt(price.value);
      if (checkbox.checked){
        var newValue = newValue + increase;
      } else {
        var newValue = newValue - increase;
      }
      price_span.item(i).innerHTML = newValue;
      price.value = newValue;
    }
  };
</script>

</body>
</html>

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

Jai 05.09.2018 05:09

У меня есть 10 полей пакета, как использовать эту функцию для нескольких полей ?????

Jai 05.09.2018 05:18

@Jai Я обновил свой ответ, помня об этих двух вещах. Это работает для нескольких флажков.

moondaisy 05.09.2018 05:27

он активирован для одного переключателя, у меня есть несколько переключателей, он изменит значение для одного переключателя, мне нужно, когда пользователь установит один флажок, все значение переключателя увеличится

Jai 07.09.2018 05:04

@Jai Я обновил, чтобы включить это, но вы должны были объяснить все это с самого начала или подумать об использовании кода в качестве основы для работы над тем, что вам нужно

moondaisy 07.09.2018 18:26

@Jai в таком случае было бы здорово, если бы вы выбрали его как правильный ответ, нажав галочку

moondaisy 12.09.2018 16:07

Вот и решение

function handleClick(cb) {
  var cb_val = parseInt(cb.value);
  var price = parseInt(document.getElementById("radioPrice").value);
  if (cb.checked) {
    document.getElementById("radioPrice").value = price + cb_val;
    document.getElementById("priceText").innerHTML = "Price : " + (price + cb_val);
  } else {
    document.getElementById("radioPrice").value = price - cb_val;
    document.getElementById("priceText").innerHTML = "Price : " + (price - cb_val);
  }
}
<label><input type = "checkbox" value = "500" onclick='handleClick(this);'> Include Fare (Rs.500/-)</label>

<label><input id = "radioPrice" type = "radio" name = "optradio" value = "4700"><span id = "priceText">Price : 4700</span></label>

Надеюсь, что это поможет вам.

Я использовал ненавязчивые принципы, чтобы привязать даже слушателей к флажкам с общим атрибутом имени.

Затем функция calculateFare перебирает отмеченные флажки и добавляет их значения к базовой цене. Базовая цена удерживается в атрибут данных, который я добавил к переключателю. Эта пересмотренная цена затем используется в качестве значения для переключателя, и отображаемая цена обновляется.

Используя эту технику, вы можете добавлять / удалять флажки, не обновляя скрипт.

var fareBoxes = document.querySelectorAll("[name='cbAdditional']");

//Add event listener to the check boxes
for(var i = 0; i < fareBoxes.length; i++)
{
  fareBoxes[i].addEventListener("click", calculateFare);
}

//The function attached to the event listener
function calculateFare(){
  var basePrice = parseInt(document.getElementById("price-input").dataset.baseprice, 10);
  //get selected boxes
  var checked = document.querySelectorAll("[name='cbAdditional']:checked");
  
  //Interate our checked boxes and add to the price
  for(var i = 0; i < checked.length; i++){
    basePrice += parseInt(checked[i].value,10);
  }
  
  //Set Value and display
  document.getElementById("price-input").value = basePrice;
  document.getElementById("price").innerHTML = basePrice;
  
  console.info(document.getElementById("price-input").value);
}
<form>
  <label><input  type = "checkbox" value = "100" name = "cbAdditional"> Weekend Rate (Rs.100/-)</label>
  <label><input  type = "checkbox" value = "200" name = "cbAdditional"> Junior Fare (Rs.200/-)</label>
  <label><input  type = "checkbox" value = "500" name = "cbAdditional"> Include Fare (Rs.500/-)</label>
  <label><input  type = "checkbox" value = "800" name = "cbAdditional"> Include Other Fare (Rs.800/-)</label>
  <label><input id = "price-input" type = "radio" data-baseprice = "4700" name = "optradio" value = "4700">Price : <span id = "price">4700</span></label>
</form>

Другие вопросы по теме