Что не так с этим сценарием?

https://jsfiddle.net/Ld5s4jLw/1/

Я не могу понять, что с этим не так, это не работает, я много чего пробовал, но не могу заставить его работать ...

function toggleAutre(bloc) {
  if ($('#' + bloc + '_oui').is(':checked')) {
    $('#' + bloc + '_texte').show('slow');
    alert('Oui');
  } else if ($('#' + bloc + '_non').is(':checked')) {
    $('#' + bloc + '_texte').hide('slow');
    alert('Non');
  }
}
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class = "col">
  <div class = "form-check form-check-inline">
    <input class = "form-check-input" type = "radio" name = "nbre_poste_inoccupe" id = "nbre_poste_inoccupe_oui" value = "1" onclick = "toggleAutre('nbre_poste_inoccupe');" />
    <label class = "form-check-label" for = "nbre_poste_inoccupe_oui">OUI</label>
  </div>
  <div class = "form-group" id = "nbre_poste_inoccupe_text_div" style = "display: none;">
    <label for = "nbre_poste_inoccupe_text" style = "font-size: 0.7em; font-weight: 400;">Si OUI, combien ?</label>
    <input class = "form-control" type = "number" name = "nbre_poste_inoccupe" id = "nbre_poste_inoccupe_text" style = "width: 5em;" value = "1" onclick = "toggleAutre('nbre_poste_inoccupe');" />
  </div>
</div>
<div class = "col">
  <div class = "form-check form-check-inline">
    <input class = "form-check-input" type = "radio" name = "nbre_poste_inoccupe" id = "nbre_poste_inoccupe_non" value = "0">
    <label class = "form-check-label" for = "nbre_poste_inoccupe_non">NON</label>
  </div>
</div>

Определите «не работает». Что он должен делать? Что оно делает? Что в консоли js? И т.п.

Dave Newton 06.05.2018 13:59

Также проверьте ошибки в консоли. Демонстрация вашей скрипки не будет работать (и выдает ошибки), потому что функция не находится в глобальном пространстве имен окна из-за того, как рабочий пример автоматически обертывает код в обратном вызове onload

charlietfl 06.05.2018 14:07

Есть ли причина, по которой вы достигаете своих элементов с помощью jquery, но с другой стороны вы определяете и пытаетесь запустить свою функцию с помощью простого javascript? Это бессмысленно

Batu.Khan 06.05.2018 14:09

Отлаженный https://jsfiddle.net/Ld5s4jLw/7/

Valijon 06.05.2018 14:17
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
1
4
32
1

Ответы 1

Если я вас правильно понял, то динамический id, который вы хотите отображать, не правильный. Вы используете селектор (после расчета, верно?) #nbre_poste_inoccupe_texte, чтобы найти div nbre_poste_inoccupe_text_div. Просто исправьте это, и он сработает для вас.

function toggleAutre(bloc) {
  if ($('#' + bloc + '_oui').is(':checked')) {
    console.info('#' + bloc + '_texte_div');
    $('#' + bloc + '_text_div').show('slow');
    alert('Oui');
  } else if ($('#' + bloc + '_non').is(':checked')) {
    $('#' + bloc + '_texte').hide('slow');
    alert('Non');
  }
}
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class = "col">
  <div class = "form-check form-check-inline">
    <input class = "form-check-input" type = "radio" name = "nbre_poste_inoccupe" id = "nbre_poste_inoccupe_oui" value = "1" onclick = "toggleAutre('nbre_poste_inoccupe');" />
    <label class = "form-check-label" for = "nbre_poste_inoccupe_oui">OUI</label>
  </div>
  <div class = "form-group" id = "nbre_poste_inoccupe_text_div" style = "display: none;">
    <label for = "nbre_poste_inoccupe_text" style = "font-size: 0.7em; font-weight: 400;">Si OUI, combien ?</label>
    <input class = "form-control" type = "number" name = "nbre_poste_inoccupe" id = "nbre_poste_inoccupe_text" style = "width: 5em;" value = "1" onclick = "toggleAutre('nbre_poste_inoccupe');" />
  </div>
</div>
<div class = "col">
  <div class = "form-check form-check-inline">
    <input class = "form-check-input" type = "radio" name = "nbre_poste_inoccupe" id = "nbre_poste_inoccupe_non" value = "0">
    <label class = "form-check-label" for = "nbre_poste_inoccupe_non">NON</label>
  </div>
</div>

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