Для начала неплохо бы очистить код, чтобы он содержал только необходимые биты, прежде чем публиковать его здесь.Трудно пробираться через все это в поисках соответствующих битов.
Это не проблема JavaScript как таковая, а просто проблема логики.Так что вы хотите сделать, это переключатель.Если пользователь выбрал option a
, установите div 1
видимым и div 2
невидимым.Если пользователь выбрал option b
, сделайте наоборот.Ниже приведена измененная функция отображения
function display(obj) {
txt = obj.options[obj.selectedIndex].value;
if (txt.match("Reproduction Rights")) {
document.getElementById("Reproduction Rights").style.display = 'block';
document.getElementById("MessageDiv").style.display = 'none';
}
else {
document.getElementById("Reproduction Rights").style.display = 'none';
document.getElementById("MessageDiv").style.display = 'block';
}
}
и HTML
для ее использования.Об этом стоит отметить два момента.Вам не нужен вызов функции hide()
в обработчике событий onchange
, функция display
- это переключатель, он сделает всю работу.Я также добавил упаковочный div с идентификатором MessageDiv
, чтобы скрыть как окно сообщения, так и текст, сопровождающий окно сообщения.Если текст не должен быть скрытым, то во что бы то ни стало пропустите div.
<label>Regarding
<br style="clear:both">
<span><select name="regarding" id="Regarding" class="formMediumText" onchange="display(this, 'Reproduction Rights');">
<option value="General Inquiry">General Inquiry</option>
<option value="Suggestion for the site">Suggestion for the site</option>
<option value="Problem with the site">Problem with the site</option>
<option value="Work to Share">Work to Share</option>
<option value="Story to Share">Story to Share</option>
<option value="Pictures to Share">Pictures to Share</option>
<option value="Reproduction Rights">Reproduction Rights</option>
</select></span>
</label>
<div id="Reproduction Rights" style="display: none; float:left;background-color: #ff9900; padding: 20px;">
<h4 style="text-transform: uppercase; padding: 0; margin:0;">Reproduction rights are granted through the Paul Rand estate only.</h4>
<p style="padding: 0; margin: 0;">Contact the <a href="http://www.library.yale.edu/mssa/" target="_blank">Yale Archives</a> with a detailed description of your planned usage and they will process your request.</p>
</div>
<div id="MessageDiv">
<label>
Message <em>(required)</em>
<br style="clear:both">
<span><textarea cols="24" rows="12" name="message" id="Message" class="formMediumText"></textarea><script type="text/javascript">var Message = new LiveValidation('Message');Name.add(Validate.Presence);</script>
</span>
</label>
</div>