Недавно я начал разрабатывать некоторые части проекта ASP.NET, но у меня мало опыта. Проблема в значительной степени описана в заголовке этого вопроса, и здесь идет код:
<script type="text/javascript" src="/scripts/hide.fields.js"></script>
<divs and divs...>
<asp:DropDownList class="dropdown expand" ID="EligibleUK" onchange="visaCheck(this.ListItem.GetValue());" runat="server">
<asp:ListItem
Enabled="True"
Text="Choose..."
Value=""
/>
<asp:ListItem
Enabled="True"
Text="Yes (UK/EU Cittizen)"
Value="Yes (UK/EU Cittizen)"
/>
<asp:ListItem
Enabled="True"
Text="Yes (Work Visa)"
Value="Yes (Work Visa)"
/>
<asp:ListItem
Enabled="True"
Text="No"
Value="No"
/>
</asp:DropDownList>
содержимое моего JS файла:
function visaCheck(visa) {
if (visa === "Yes (Work Visa)"){
document.getElementById(visa1).style.display = "block";
document.getElementById(visa2).style.display = "block";
}else{
document.getElementById(visa1).style.display = "none";
document.getElementById(visa2).style.display = "none";
}
}
Теперь я пробовал разные вещи в html (.master строго говоря), где я вызываю код функции JS, например:
this.ListItem
asp:ListItem
ListItem.Value
this.ListItem.Value
this.ListItem.Value()
this.ListItem.GetValue()
включая наиболее очевидный (this.value), который работал со стандартным html файлом и в jsfiddle. Есть ли какой-либо конкретный способ сделать это в ASP.NET? Что мне не хватает и как я могу исправить эту проблему? Спасибо за ваши ответы.
Попробуйте изменить:
<asp:DropDownList class="dropdown expand" ID="EligibleUK" onchange="visaCheck(this.options[this.selectdIndex].value);" runat="server">
Я отправляю ответ по своему вопросу, чтобы он был более заметным. Я вызываю js-функцию без аргумента, и мой javascript теперь выглядит следующим образом:
function visaCheck() {
var visa = document.getElementById('Content_EligibleUK');
var selectedIndex = visa.selectedIndex;
var value = visa.options[selectedIndex].value
if (value === "Yes (Work Visa)"){
document.getElementById("visa1").style.display = "block";
document.getElementById("visa2").style.display = "block";
}else{
document.getElementById("visa1").style.display = "none";
document.getElementById("visa2").style.display = "none";
}
}
надеюсь, что это поможет некоторым людям в будущем :)