#javascript #forms #conditional
#javascript #формы #условный
Вопрос:
У меня есть эта форма цитаты, которая довольно обширна… Все, что мне нужно сделать сейчас, это добавить некоторый код, который позволит вопросам оставаться видимыми, а не скрывать их после выбора.
т.е. пользователь будет находиться в любом бизнес-пути (вся таблица1,11,12,13,14,15,16), путь резидента (вся таблица2,21,22,23,24,25,26, или у меня есть путь к списку (вся таблица3).
Вот моя скрипка http://jsfiddle.net/XuVUb /
фрагмент кода:
<script type="text/javascript">
function show_table(id){
document.getElementById('table1').style.display='none';
document.getElementById('table11').style.display='none';
document.getElementById('table12').style.display='none';
document.getElementById('table13').style.display='none';
document.getElementById('table14').style.display='none';
document.getElementById('table15').style.display='none';
document.getElementById('table16').style.display='none';
document.getElementById('table2').style.display='none';
document.getElementById('table21').style.display='none';
document.getElementById('table22').style.display='none';
document.getElementById('table23').style.display='none';
document.getElementById('table24').style.display='none';
document.getElementById('table25').style.display='none';
document.getElementById('table26').style.display='none';
document.getElementById('table3').style.display='none';
document.getElementById('table' id).style.display='block';
}
</script>
Комментарии:
1. Извините, но о чем вы спрашиваете?
2. Итак, один вопрос приведет вас к следующему jsfiddle.net/XuVUb Все, что мне нужно сделать сейчас, это добавить некоторый код, который позволит вопросам оставаться видимыми, а не скрывать их после того, как выбор сделан.
3. У кого-нибудь есть какие-либо идеи?
4. Я предполагаю здесь, но хотите ли вы показывать вопросы один за другим, но вместо того, чтобы заменять вопрос с ответом следующим вопросом, вы хотите сохранить вопрос с ответом и показать новый под ним? В этом случае просто не скрывайте их снова.
5. Это именно то, что нужно! но как мне сделать это с тем кодом, который у меня есть? jsfiddle.net/XuVUb
Ответ №1:
Я думаю, вы хотите что-то вроде этого: http://jsfiddle.net/S9bSe /
HTML:
<div class="level-1">
<p>Are you dead or alive?</p>
<ul>
<li><a href="#dead" data-level="2">Dead</a></li>
<li><a href="#alive" data-level="2">Alive</a></li>
<li><a href="#schrodingers_cat" data-level="2">Both</a></li>
</ul>
<div id="dead" class="hidden level-2">
<p>Do you have physical form?</p>
<ul>
<li><a href="#corpse" data-level="3">Yes</a></li>
<li><a href="#ghost" data-level="3">No</a></li>
</ul>
<div id="corpse" class="hidden level-3">
<p>You are a corpse</p>
</div>
<div id="ghost" class="hidden level-3">
<p>You are a ghost</p>
</div>
</div>
<div id="alive" class="hidden level-2">
<p>Do you have 9 lives?</p>
<ul>
<li><a href="#regular_cat" data-level="3">Yes</a></li>
<li><a href="#maybe_human" data-level="3">No</a></li>
</ul>
<div id="regular_cat" class="hidden level-3">
<p>You are a cat</p>
</div>
<div id="maybe_human" class="hidden level-3">
<p>You might be human</p>
</div>
</div>
<div id="schrodingers_cat" class="hidden level-2">
<p>You are a cat and you belong to Schrödinger</p>
</div>
</div>
CSS
.hidden {
display: none;
}
JavaScript (с помощью jQuery)
$("a").on("click", function () {
var id = $(this).attr("href");
var level = $(this).data("level");
$(".level-" level).addClass("hidden");
$(id).removeClass("hidden");
});
Пожалуйста, извините меня за введение jQuery, но это должно, по крайней мере, прояснить, как можно решить проблему.
Комментарии:
1. Спасибо, Джозеф, это действительно выглядит великолепно! В настоящее время я использую последнюю версию jQuery, и мой веб-сайт загружен. Просто интересно, будут ли у меня проблемы с загрузкой jQuery 1.11.0? Вот ссылка на мой сайт, который я в настоящее время переношу на WordPress. testing.printlabelandmail.com
2. Послушайте, это заходит слишком далеко. Я здесь, чтобы помочь вам учиться, если это то, что вы хотите. У вас уже есть три вопроса об одном и том же. Если вы хотите, чтобы кто-то работал на вас, наймите кого-нибудь. Честно говоря, я чувствую, что если вы не хотите разбираться в этом и учиться, вам, вероятно, не следует создавать веб-сайт.
3. Хорошо, это нормально. Я, очевидно, знаю немного больше о создании веб-сайтов, чем вы думаете. Если вам не нравятся мои вопросы, не отвечайте… Я работал над этой проблемой дольше всего и хотел убедиться, что она завершена. Фактически, вам не помешала бы небольшая помощь в обновлении вашего веб-сайта. Спасибо.
4. Извините, если я показался грубым, это не было моим намерением. Удачи с вашим проектом.