Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.08.2016, 04:11
Кандидат Javascript-наук
Отправить личное сообщение для drkrol Посмотреть профиль Найти все сообщения от drkrol
 
Регистрация: 09.10.2013
Сообщений: 114

Как переделать js, чтобы не воспринималось двойное нажатие на radio кнопку
Здравствуйте. Есть вот такой код https://jsfiddle.net/dfybvwoh/10/ . В начале через select задаётся цена товара товара, а потом через radio кнопки добавляется 2000 или цена остаётся прежней. Этот код рабочий, но мне он не подходит. В своём сайте я использую jquery form styler, и с помощью его я модифицирую внешний вид input'ов, а именно input type="radio". Загвоздка в том, что используя этот form styler можно выбрать один и тот же radio несколько раз. 1 раз нажал на radio - получил 500, еще раз нажал - получил 1000, и так далее. Помогите пожалуйста переделать код так, чтобы этого бага не было. То есть нажатие на radio не приводило к повторному прибавлению.
Ответить с цитированием
  #2 (permalink)  
Старый 27.08.2016, 08:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

drkrol,
if ($( this ).val() == "notime" & time_plus == true)
Ответить с цитированием
  #3 (permalink)  
Старый 27.08.2016, 08:41
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

drkrol,
опишите все комбинации вычисления цены
Ответить с цитированием
  #4 (permalink)  
Старый 27.08.2016, 09:09
Кандидат Javascript-наук
Отправить личное сообщение для Strongman Посмотреть профиль Найти все сообщения от Strongman
 
Регистрация: 22.03.2016
Сообщений: 132

Где двойное срабатывание? Не вижу. У меня все нормально работает на jsfiddle.net.
Ответить с цитированием
  #5 (permalink)  
Старый 27.08.2016, 09:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Сообщение от Strongman
Где двойное срабатывание?
Сообщение от drkrol
В своём сайте я использую jquery form styler,
Ответить с цитированием
  #6 (permalink)  
Старый 27.08.2016, 09:52
Кандидат Javascript-наук
Отправить личное сообщение для drkrol Посмотреть профиль Найти все сообщения от drkrol
 
Регистрация: 09.10.2013
Сообщений: 114

рони,
В начале через select, где 8 option (типы), а потом через радио кнопку. Больше ценообразования нет.
Ответить с цитированием
  #7 (permalink)  
Старый 27.08.2016, 10:12
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

калькулятор стилизация при помощи jQuery Form Styler
drkrol,
варианты цены это строки 22 - 29 ...

<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/jquery.formstyler/1.7.6/jquery.formstyler.css">
  <script src="https://cdn.jsdelivr.net/jquery.formstyler/1.7.6/jquery.formstyler.min.js"></script>
  <script>
$(function() {
    var inp = $('input[name="time"]'),
        sel = $('select[name="type"]'),
        items = $().add(inp).add(sel),
        price = $(".price");
    items.styler().on("change", function() {
        var t = sel[0].selectedIndex,
            r = inp.index(inp.filter(":checked"));
        price.val({
            1: {
                0: 2500,
                1: 500
            },
            2: {
                0: 2800,
                1: 800
            }
        }[t][r] || 0)
    })
});
  </script>
</head>

<body>
   <select name="type" class="type">
     <option ></option>
     <option>Тип1</option>
     <option>Тип2</option>
   </select>
   <p></p>
   <label>
      <input type="radio" name="time" value="yestime" class="rrad">
      <div class="rtext">Трубы горят</div>
      </label>

      <label>
      <input type="radio" name="time" value="notime" class="rrad">
      <div class="rtext">Время есть</div>
      </label>

     <input type="text" class="price" value="0" readonly>

</body>
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 27.08.2016, 11:28
Кандидат Javascript-наук
Отправить личное сообщение для drkrol Посмотреть профиль Найти все сообщения от drkrol
 
Регистрация: 09.10.2013
Сообщений: 114

рони,
Извини, не хочу создавать новую тему. Ты бы не мог подсказать,как сделать так, чтобы после того, как будет выбран select и radio выполнялось действие:

$('.priceblock').removeClass('none');

?
Ответить с цитированием
  #9 (permalink)  
Старый 27.08.2016, 11:44
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,124

Сообщение от drkrol
Извини, не хочу создавать новую тему.
и ненужно плодить лишнее.
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  .none{
    display: none;
  }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/jquery.formstyler/1.7.6/jquery.formstyler.css">
  <script src="https://cdn.jsdelivr.net/jquery.formstyler/1.7.6/jquery.formstyler.min.js"></script>
  <script>
$(function() {
    var inp = $('input[name="time"]'),
        sel = $('select[name="type"]'),
        items = $().add(inp).add(sel),
        price = $(".price"),
        block = $('.priceblock');
    items.styler().on("change", function() {
        var t = sel[0].selectedIndex,
            r = inp.index(inp.filter(":checked")),
            num = {
            1: {
                0: 2500,
                1: 500
            },
            2: {
                0: 2800,
                1: 800
            }
        }[t][r] || 0;
        price.val(num);
        num && block.removeClass('none')
    })
});
  </script>
</head>

<body>
   <select name="type" class="type">
     <option ></option>
     <option>Тип1</option>
     <option>Тип2</option>
   </select>
   <p></p>
   <label>
      <input type="radio" name="time" value="yestime" class="rrad">
      <div class="rtext">Трубы горят</div>
      </label>

      <label>
      <input type="radio" name="time" value="notime" class="rrad">
      <div class="rtext">Время есть</div>
      </label>

     <input type="text" class="price" value="0" readonly>
     <div class="priceblock none">скрытый блок</div>
</body>
</html>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
есть ли в js понятие частоты кадров, наподобие как во флэше? andrew_F Общие вопросы Javascript 8 01.05.2012 20:25
Как обойти base href, чтобы ссылка на внешн. js была локальной? Andrej_2 Общие вопросы Javascript 2 18.11.2011 11:25
Как сделать, чтобы при наведении на кнопку справа от нее появлялись текстовые ссылки? Tass Общие вопросы Javascript 7 17.02.2011 09:06
Запуск выполнения PHP при нажатие на кнопку??? Abibas220 Общие вопросы Javascript 1 05.01.2011 12:05
Как сделать так, чтобы JS при нажатии на кнопку не выполняла запрос со страницы. JSProgrammer Элементы интерфейса 3 18.05.2010 20:18