#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. Добро пожаловать, и теперь у вас достаточно репутации, так что все сделано хорошо 🙂