значение в текстовое значение

#javascript #jquery #html #select

#javascript #jquery #HTML #выберите

Вопрос:

Я пытаюсь установить значение и текст поля ввода из элемента select.

 var p = document.getElementById("pretestNameSelect");
var test = p.options[p.selectedIndex].value;
if (choice.toString() == "type0")
{
    alert(test);
    $(document.getElementById("type0")).show();
    hideOtherQuestionDivs(choice.toString());        
    $(document.getElementById("pretestNameSelectHiddenTextQ0")).value = "test";
    $(document.getElementById("pretestNameSelectHiddenTextQ0")).text = "test";
    alert(document.getElementById("pretestNameSelectHiddenTextQ0").value);
}
  

Предупреждение (тест) работает и показывает правильное значение, но значение не задано, а предупреждение (документ …) показывает пустое предупреждение.

В чем может быть проблема?

Комментарии:

1. Как $ выглядит функция? Если у вас есть jQuery, ваш код не имеет никакого смысла. Значения полей ввода jQuery устанавливаются $(selector).val(value) и получаются с помощью $(selector).val()

2. Это весь код?

3. Почему вы смешиваете селекторы jQuery ( $() ) с ванильными селекторами javascript ( getElementById() ) ? Используйте один или другой.

4. Возможно, вы имели в виду var $p = $("#pretestNameSelect"); var test = $p.val(); if (test == "type0") { $("#type0").show(); hideOtherQuestionDivs(test); $("#pretestNameSelectHiddenTextQ0").val(test); }

Ответ №1:

Вы смешиваете селекторы Jquery с селекторами DOM.

Вы можете использовать

 $('#pretestNameSelectHiddenTextQ0').val(test);
  

или

 document.getElementById('pretestNameSelectHiddenTextQ0').value = test;
  

Комментарии:

1. В этом проблема, когда у вас недостаточно репутации для комментариев: D

2. Добро пожаловать, и теперь у вас достаточно репутации, так что все сделано хорошо 🙂