Member 13053943 Ответов: 0

Заполнение выпадающего списка из выбранного значения выпадающего списка


Каждая отметка связана с выбранным уровнем зарплаты.когда вы выбираете класс зарплаты,отметка должна быть отфильтрована до этого связанного класса зарплаты.Я использую ajax, чтобы сделать это, но он не работает, пожалуйста, помогите.

Что я уже пробовал:

<div class="form-group">
                                        @Html.LabelFor(model => model.SalaryGradeId, htmlAttributes: new { @class = "control-label col-md-2" })
                                        <div class="col-md-6">
                                            @Html.DropDownListFor(model => model.SalaryGradeId, (List<SelectListItem>)Model.SalaryGradeList, new { @class = "form-control", onchange = "GetSalaryNotchByGrades();", @id = "SalaryGrade_Cbx" })
                                            @Html.ValidationMessageFor(model => model.SalaryGradeId, "", new { @class = "text-danger" })
                                        </div>
                                    </div>
                                    <div class="form-group">
                                        @Html.LabelFor(model => model.NotchId, htmlAttributes: new { @class = "control-label col-md-2" })
                                        <div class="col-md-6">                                             
                                           <select class="form-control" id="SalaryNotch_Cbx" onchange="GetAmount();">                                                                                                                                      
                                          </select>
                                            @Html.ValidationMessageFor(model => model.NotchId, "", new { @class = "text-danger" })
                                        </div>
                                    </div>


это javascript, который я использую для извлечения информации из api


<script>
    function GetAmount() {

                $.ajax({
                    url: baseUrl + 'api/SalaryNotch/' + $("#SalaryNotch_Cbx").val(),
                    type: 'GET',
                    headers: { 'Access-Control-Allow-Origin': '*' },
                    dataType: 'json',
                    success: function (data) {
                        if (data.HasError == 0) {
                            console.log(data.Model);
                            $("#BasicSalary_Txt").val(data.Model.Monthly)
                        }
                    },
                    error: function (request, error) {
                        console.log(error);
                    }
                });
            }          
        
      

    function GetSalaryNotchByGrades() {

                $.ajax({
                    url: baseUrl + 'api/SalaryGradeByNotch/' + $("#SalaryGrade_Cbx").val(),
                    type: 'GET',
                    headers: { 'Access-Control-Allow-Origin': '*' },
                    dataType: 'json',
                    success: function (data) {
                        if (data.HasError == 0) {
                            console.log(data.Model);
                            $("#SalaryNotch_Cbx").val(data.Model);
                            $("#SalaryNotch_Cbx").html("");
                            $("#SalaryNotch_Cbx").append
                           // ($('<option></option>').val(null).html("Select Notch"));
                            $.each($.parseJSON(data), function (i, notch)
                            { $("#SalaryNotch_Cbx").append($('<option></option>').val(notch.Id).html(notch.Name)) })
                                
                        }
                    },
                    error: function (request, error) {
                        console.log(error);
                    }
                });
            }


</script>

F-ES Sitecore

"не работает" не дает никому достаточно информации, чтобы помочь вам. Вы бы позвонили механику и сказали: "моя машина не работает, как мне ее починить?"

Например, вы используете относительный путь к вашему api ("api/...") как мы узнаем, что он действителен, если у нас нет доступа к вашей машине? Вам нужно научиться, по крайней мере, выполнять базовую отладку javascript, чтобы проследить путь, по которому идет код, чтобы выяснить, что он делает, чего вы не хотите, и что он не делает, что вы хотите, чтобы он делал.

Karthik_Mahalingam

вы получаете какую-либо ошибку в окне консоли?

Member 13053943

да,я отредактировал код и получил эту ошибку

функция GetSalaryNotchByGrades() {

$.Аякс({
url: baseUrl + 'api/SalaryGradeByNotch/' + $("#SalaryGrade_Cbx").val(),
тип: 'GET',
заголовки: { 'контроля доступа-разрешить-происхождения': '*' },
тип данных: 'json',
успех: функция (данные) {
если (данные.HasError == 0) {
консоли.отчет(сведения.Модель);
$("#SalaryNotch_Cbx").val(данные.Модель);
$("#SalaryNotch_Cbx").html("");
$("#SalaryNotch_Cbx").добавить
($(в'<параметр&ГТ;&ЛТ;/вариант&ГТ;').функция val(значение null).код HTML("выберите ПАЗ"));
$.each(data,function (i, notch)
{ $("#SalaryNotch_Cbx").функции append ($(в'<параметр&ГТ;&ЛТ;/вариант&ГТ;').вал(Нотч.ИД).в формате HTML(Нотч.Название)) })

}
},
ошибка: функция (запрос, ошибка) {
console.log(ошибка);
}
});
}




это ошибка, которую я получил
Uncaught TypeError: не удается прочитать свойство 'Id' null

Karthik_Mahalingam

означает, что значение метки равно null/undefined

0 Ответов