#javascript #jquery #asp.net-core #dropdown
Вопрос:
Привет, у меня есть два раскрывающихся списка в моем Html, когда я выбираю свой раскрывающийся список. мой второй раскрывающийся список должен изменить связанные элементы. В моем выпадающем списке один из двух пунктов Внутренний, международный, во втором выпадающем списке три пункта INR, USD, EUR
Когда я изменяю свой первый раскрывающийся список, выбранный внутренний элемент должен отображаться во втором раскрывающемся списке, в котором отображается только элемент, который нужно скрыть. Затем я выбираю международный элемент в моем первом выпадающем списке, который должен отображаться во втором выпадающем списке в долларах США, а отображается только валюта евро. как этого достичь. (с использованием jquery или javascript). Мой код ниже здесь.
<div class="input-group input-group-sm">
<select id="OrderType" asp-for="Type" title="Mode" class="form-control form-control-sm border selectpicker" onchange="GetCurrencybyType(this)">
<option id="DomId" value="1" selected>Domestic</option>
<option id="InterId" value="2">International</option>
</select>
</div>
<div class="input-group input-group-sm">
<select id="CurrencyType" asp-for="Currency" title="Mode" class="form-control form-control-sm border selectpicker">
<option id="InrId" value="1" selected>INR</option>
<option id="UsdId" value="2">USD</option>
<option id="EurId" value="2">EUR</option>
</select>
</div>
Моя функция Jquery
function GetCurrencybyType(id) {
var value = id.value;
if (value == 2) {
$('#mySelect').children().remove().end()
.append('<option selected value="USD">USD</option>');
}
else {
$("option[value='2']").remove();
$('select[id=CurrencyType]').val('<option value="' id.val '">' "INR" '</option>');
}
//var value = id.value;
//var selectedCountry = $(this).children("option:selected").val();
//alert("You have selected the country - " value);
//var InrIdValue = $("#InrId").val();
//if (value == "Domestic") {
// $("#CurrencyType").html("");
// var result = $("#CurrencyType").html("");
// alert(result);
// $("#CurrencyType").append($("<option />").val(InrIdValue).text(InrIdValue));
// var result1 = $("#CurrencyType").append($("<option />").val(InrIdValue).text(InrIdValue));
// alert(result1);
// //$('select[id=CurrencyType]').val(InrIdValue);
// //var result = $('select[id=CurrencyType]').val(InrIdValue);
// //alert(result);
// //$('select[id=CurrencyType]').val('<option value="' InrIdValue '">' InrIdValue '</option>');
//}
//else {
// alert("International");
//}
}
я не получаю правильное значение в своем пользовательском интерфейсе, пожалуйста, ответьте мне.
Ответ №1:
Вот рабочая демонстрация, за которой вы могли бы следить:
<div class="input-group input-group-sm">
<select id="OrderType" title="Mode" class="form-control form-control-sm border selectpicker" >
<option id="DomId" value="1">Domestic</option>
<option id="InterId" value="2">International</option>
</select>
</div>
<div class="input-group input-group-sm">
<select id="CurrencyType" title="Mode" class="form-control form-control-sm border selectpicker">
<option value="" selected>Select A Currency</option>
</select>
</div>
@section Scripts
{
<script>
$(function () {
var subjectObject = {
"1": [
"INR"
],
"2": [
"USD",
"EUR"
]
};
$('#OrderType').change(function () {
var OrderType = $(this).val()
var CurrencyType = subjectObject[OrderType] || [];
var html = $.map(CurrencyType, function (cnt) {
return '<option value="' OrderType '">' cnt '</option>'
}).join('');
$('#CurrencyType').html(html)
});
})
</script>
}
JSFiddle, который вы могли бы проверить: https://jsfiddle.net/b6pe3vxq/