Javascript функций, не работающих в сегментах сайта, полученных через PHP, требуют - PullRequest
0 голосов
/ 22 марта 2020

У меня есть <script type="text/javascript"> функции в <head> моего сайта, и у меня есть сегменты сайта, полученные через PHP require, эти функции применяются к различным вещам, некоторые из которых уже находятся в одном файле функции находятся и другие, полученные через require, функции работают должным образом в тех сегментах, которые уже находятся на <body> с самого начала, но не работают в тех сегментах, которые получены через require.

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

Как всегда, любая помощь очень приветствуется и спасибо за ваше время.

В соответствии с приведенным ниже запросом код

Код ниже находится в <head>:

<script type="text/javascript">
    function showHide() {
        var radioDel = document.getElementById("radDel");
        var radioRet = document.getElementById("radRet");

        if (radioDel.checked) {
            document.getElementById("dir").style.display = "flex";
            document.getElementById("diaEn").style.display = "flex";
            document.getElementById("direccion").required = true;
            document.getElementById("radRet").required = false;
        }

        if (radioRet.checked) {
            document.getElementById("dir").style.display = "none";
            document.getElementById("diaEn").style.display = "none";
            document.getElementById("direccion").required = false;
            document.getElementById("radDel").required = false;
        }
    }       
</script>

Приведенный ниже код находится в <body>, и в нем работают функции:

<fieldset class="form-group">
    <div class="row">
        <div class="col-sm-10">
            <div class="form-check">
                <input class="form-check-input" name="radios" id="radRet" type="radio" value="Retira" onclick="showHide()" required>
                <label for="radRet" class="form-check-label font-weight-bold">Retiro personalmente</label>
            </div>
            <div class="form-check">
                <input class="form-check-input" name="radios" id="radDel" type="radio" value="Delivery" onclick="showHide()" required>
                <label for="radDel" class="form-check-label font-weight-bold">Entrega</label>
                <small id="diaEn" class="form-text text-muted" style="display:none;">Todas las entregas se hacen con Rappi</small>
            </div>
        </div>
    </div>
</fieldset>

Приведенный ниже код получен через <?php require $_SERVER['DOCUMENT_ROOT'].'/php/fieldset.php'; ?>, и функции в нем не работают:

* 1 027 *

1 Ответ

1 голос
/ 22 марта 2020

Ваши идентификаторы radRet и radDel дублируются.

  • Передайте отличный идентификатор через параметр функции. showHide(id1, id2)
  • Ссылка на этот элемент относительно.
  • Измените свой идентификатор в PHP.
...