Я только начал работать с Javascript, так что это может звучать как вопрос новичков. Я хочу распечатать элемент выбранной формы. Но я выполняю его в части javascript моего кода, так как список параметров должен быть доступен из массива в скрипте. Я использовал элемент div в части HTML для вывода этого элемента select. Мой код выглядит следующим образом.
<head>
<script>
function currentWorlds()
{
var string="<select id='worldSelected'>";
for(var i=0;i<universe.name.length;i++)
{
string+="<option value='"+i+"'>"+universe.name[i]+"</option>";
}
string+="</select>";
$('#universeOptions').html(string);
}
$(function(){
currentWorlds();
});
</script>
</head>
<body>
<form>
Select from current games: <br>
<div id="universeOptions"></div>
<input type="button" id="selectWorldButton" name="selectWorld" value="Select Game"> </br>
</form>
</body>
Я включил только соответствующий код, с которым у меня возникла проблема. В этом случае юниверс - это объект, у которого есть атрибут массива, называемый именем. Эти имена - это параметры, которые я хочу отображать и на основе ввода пользователя, хотят обрабатывать. Кажется, я не могу сохранить идентификатор опции выбора после выбора. Это означает, что когда я console.log значение worldSelected, он выводит 0, один раз. И ничего не выводит после выбора новой опции. Есть что-то, чего я не хватает? Помощь будет оценена!
Благодарю!
Я бы немного отредактировал код... Попробуйте это и сообщите мне, если он работает:
Просмотр консольных журналов на JsBin
function currentWorlds(){
var universe = {
name: ["Uni A","Uni B","Uni C","Uni D","Uni E","Uni F","Uni G"]
};
var select = "<select id='worldSelected'></select>";
$('#universeOptions').html(select);
for(var i=0;i<universe.name.length;i++){
$('#worldSelected').append($("<option></option>")
.attr("value",i)
.text(universe.name[i]));
}
}
$(function(){
currentWorlds();
$('#worldSelected').change(function(){
console.log($(this).val());
});
});
введите код, используя jquery, чтобы проверить выбранное значение.
$('#worldSelected').change(function(){
console.log($(this).val());
});
это будет регистрировать значение selectbox каждый раз, когда будет выбрано новое значение. Вы также можете добавить этот код выше своего определения функции currentWorlds. Примечание. Для этого требуется добавить библиотеку jquery. Как я уже отмечал из кода, который вы опубликовали, вы использовали jquery. Поэтому я предполагаю, что вы связали его в своем файле.
Вы можете использовать это прямо в своем коде:
function currentWorlds()
{
var string = document.createElement('select');
string.setAttribute('id', 'worldSelected');
var string1;
for(var i=0;i<universe.name.length;i++)
{
string1 = document.createElement('option');
string1.value = i;
string1.text = universe.name[i];
string.appendChild(string1);
}
document.getElementById('universeOptions').appendChild(string);
}