Почему jQuery перестает работать во второй раз, когда было выполнено действие?

Я пытаюсь создать страницу, на которой, как только вы переключите опцию выбора тега, она даст вам другой результат, но когда я переключился на опцию «Вопрос №1», выбрал один из других вариантов и снова выбрал «Вопрос №1» вариант, который он не запускал.

function testselect() {

    var x = document.getElementById("testselect").value;

    if (x == "") {

        $(function() {

            $("#demo").html("");

        });

    }

    else {

        $(function() {

            $("#demo").load("c7vt.php?finished");


        });

    }

}

И HTML:

<select id = "question" onchange = "question()">

    <option>Select Question #</option>
    <option value = "1">Question #1</option>
    <option value = "2">Question #2</option>
    <option value = "3">Question #3</option>

</select>

Вы можете поделиться своим html? Непонятно, что именно вы спрашиваете, не могли бы вы отредактировать свой вопрос? Возможно, будет лучше, если вы измените часть, в которой написано «другой результат», на конкретный результат. Вы можете избавиться от вызова $("#demo").load() и заменить его на что-то вроде $("#demo").html(), другим будет проще протестировать ваш код. Взгляните на минимальный воспроизводимый пример. Кроме того, не нужно оборачивать вызовы jquery внутри функций.

Raul Sauco 11.03.2018 01:13
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
0
1
27
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваш HTML-код onclick вызывает функцию "question ()", но в вашем JavaScript есть функция "testselect ()". Также JavaScript получает значение из «#testselect», но на самом деле идентификатор - «#question». Обе функции, готовые к работе с документами jQuery, также необходимо удалить. Последнее, что нужно упомянуть, это то, что «x» никогда не будет пустым, потому что опция без значения будет отображать текст опции, который будет «Select Question #». Попробуйте что-то вроде этого:

HTML:

<select id = "question">
    <option value = "default">Select Question #</option>
    <option value = "1">Question #1</option>
    <option value = "2">Question #2</option>
    <option value = "3">Question #3</option>
</select>

JavaScript / jQuery:

$(function() {
    $("#question").change(function(e) {
        e.preventDefault();

        var x = document.getElementById("question").value;

        if (x == "default") {
            $("#demo").html("");
        } else {
            $("#demo").load("c7vt.php?finished");
        }
    });
});

Я подумал, что именно это и произошло, учитывая, что у вас это работает, но я хотел убедиться. Рад, что смог предложить решение, которое сработало для вас! Не могли бы вы отметить ответ, когда у вас будет возможность?

BSK 11.03.2018 14:01

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