JavaScript для отображения asp: TextBox на основе выбранной опции

0

Недавно я начал разрабатывать некоторые части проекта 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? Что мне не хватает и как я могу исправить эту проблему? Спасибо за ваши ответы.

Теги:

2 ответа

1

Попробуйте изменить:

<asp:DropDownList class="dropdown expand" ID="EligibleUK" onchange="visaCheck(this.options[this.selectdIndex].value);" runat="server">
  • 1
    ну, это не сработало, НО я вызвал функцию без аргументов и использовал ключ, который вы дали мне, чтобы изменить функцию JS, и это работает, так что спасибо за попытку :)
0

Я отправляю ответ по своему вопросу, чтобы он был более заметным. Я вызываю 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";
}   

}

надеюсь, что это поможет некоторым людям в будущем :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню