У меня есть код Javascript, который обрабатывает событие onchange и onfocus в моем поле со списком. Таким образом, он отображает только тот, который выбирается пользователем в поле со списком.style.visibility = 'hidden' в JavaScript не работает
У меня есть этот Javascript код:
var prev = "";
function pagechange(topage) {
frompage = prev;
var page=document.getElementById('formpage_'+frompage);
if (!page) return false;
page.style.display='none';
page.style.visibility='hidden';
page=document.getElementById('formpage_'+topage);
if (!page) return false;
page.style.display='block';
page.style.visibility='visible';
return true;
}
function set(){
var e = document.getElementById("usertype");
var selection = e.options[e.selectedIndex].text;
pagechange(selection);
}
function getPrevious(){
var e = document.getElementById("usertype");
var selection = e.options[e.selectedIndex].text;
prev = selection;
}
И это один для моего поля со списком:
<select id="usertype" name="usertype" class="dropdown-select" autofocus="autofocus" onchange="set()" onfocus="getPrevious()" >
<option value="1" selected="selected">Chairperson</option>
<option value="2">Dean</option>
<option value="3">Faculty</option>
<option value="4">Staff</option>
<option value="5">Student</option>
<option value="6">Admin</option>
</select>
Я попробовал. Да, это показывает, что пользователь выбрал, но он не скрывает предыдущий.
Как вы думаете, что случилось в моем коде? или что нужно изменить?
Я не думаю, что это проблема, но нет необходимости изменять «видимость» вообще, если вы устанавливаете 'display: none' , – nnnnnn
Ну, первый раз, когда «pagechange()» работает, не будет ли «prev» быть пустым? Разве это не приведет к немедленному выходу функции? – Pointy
@nnnnnn Да, но он будет есть некоторое пространство на странице, потому что оно не скрыто. – Harvey