Вопрос по html5, javascript – Выпадающий список - отображать div при выборе опции

2

Вы должны написать функцию, которая "показывает" соответствующая часть формы в зависимости от того, что выбрал пользователь. Например, если «пицца»; выбран div # section2 с вопросом о типе пиццы.

Это часть HTML-кода

<form id="survey" action="#" method="post">

<div id="section1">
    <label for="food">What is your favourite type of food?</label>
    <select id="food" onchange="selection()">
        <option value="pizza">Pizza</option>
        <option value="mex">Mexican</option>
        <option value="thai">Thai</option>
    </select>
</div>
<div id="section2">
    What is your favourite type of pizza?<br>
    <label for="hawaiian">Hawaiian</label><input type="radio" id="hawaiian">
    <label for="supreme">Supreme</label><input type="radio" id="supreme">
    <label for="vegetarian">Vegetarian</label><input type="radio" id="vegetarian">
</div>

Как бы я написал функцию javascript, чтобы при щелчке по опции «пицца» отображался раздел 2? Я новичок в JavaScript, поэтому любая помощь будет отличной.

Ваш Ответ

2   ответа
2

о изменить разметку и использоватьdiv Идентификаторы.

HTML:

<div id="section1">
    <label for="food">What is your favourite type of food?</label>
    <select id="food" onchange="selection(this)">
        <option value="pizza">Pizza</option>
        <option value="mex">Mexican</option>
        <option value="thai">Thai</option>
    </select>
</div>
<div id="section_pizza" style="display: none;">
    What is your favourite type of pizza?<br>
    <label for="hawaiian">Hawaiian</label><input type="radio" id="hawaiian">
    <label for="supreme">Supreme</label><input type="radio" id="supreme">
    <label for="vegetarian">Vegetarian</label><input type="radio" id="vegetarian">
</div>

JavaScript:

function selection(select) {
    document.getElementById("section_" + select.value).style.display = "block";
}

Тем не менее, вы можете использоватьБиблиотека JQuery и сделать это быстрее и гибче. Вы можете легко добавить анимацию в блоки и добавить дополнительные функции.

HTML:

<div id="section1">
    <label for="food">What is your favourite type of food?</label>
    <select id="food">
        <option value="pizza">Pizza</option>
        <option value="mex">Mexican</option>
        <option value="thai">Thai</option>
    </select>
</div>
<div id="section2" data-type="pizza" style="display: none;">
    What is your favourite type of pizza?<br>
    <label for="hawaiian">Hawaiian</label><input type="radio" id="hawaiian">
    <label for="supreme">Supreme</label><input type="radio" id="supreme">
    <label for="vegetarian">Vegetarian</label><input type="radio" id="vegetarian">
</div>

JavaScript:

$("#food").change(function() {
    $("[data-type]").hide();
    $("[data-type='" + this.value + "']").show(1000);
});
@AnthonyDo Пожалуйста, проверьте обновление поста и посмотрите на JQuery.
@ downvoter Оставьте комментарий, пожалуйста.
ОП не запросил решение jQuery. Ваш первый вариант JavaScript не соответствовал его потребностям. Я проголосовал, хотя.
я не могу это изменить. это практическое, что мне нужно сделать: с. Идентификаторы должны оставаться в section1, section2, section3 для параметров pizza, mex и thai: / Anthony Do
Ты не прав.I'm a complete javascript novice so any help would be great, Поэтому я могу дать совет по использованию JQuery, это не запрещено. Более того, сначала я дал вполне работоспособное решение - в вопросе ничего не сказано о наименовании блоков. Это происходит только из комментария. Вот почему я запутался.
3

http://jsfiddle.net/iambriansreed/rQr6v/

JavaScript:

var sections = {
    'pizza': 'section2',
    'mex': 'section3',
    'thai': 'section4'   
};

var selection = function(select) {

    for(i in sections)
        document.getElementById(sections[i]).style.display = "none";    

    document.getElementById(sections[select.value]).style.display = "block";

}

Оформить заказ Заменитьsection3 а такжеsection4 Div с фактическим содержанием.

добавлятьconsole.log(select.value); к функции.
Большое спасибо, демоверсия очень хороша для того, чтобы увидеть, как выглядит макет для javascript и как будет выглядеть веб-документ. Anthony Do
У меня есть еще один вопрос, и мне было интересно, если вы могли бы помочь мне. Мне также нужно отобразить сообщение в консоли JavaScript, указывающее, какой тип пищи выбран. подсказка заключается в использовании console.log (& quot; & quot;)) Anthony Do

Похожие вопросы