2015-12-27 2 views
0

Я просто хотел изменить значение текстового поля при изменении раскрывающегося списка, можете ли вы сказать мне, что случилось? Я действительно новый код в Jqueryизменение значения текстового поля при изменении выпадающего списка

в мой контроллер просто пример я буду делать больше после моего кода работы

Посмотреть

<script type="text/javascript"> 
     $(document).ready(function() { 
      $("#ddltype").change(function() { 
       var id = $(this).val(); 
       $.getJSON("@Url.Action("getWeightedAverage", "Employee")", { id: id }, function (Ave) { 
        $("#Average").val(Ave); 
       }); 
      }); 
     }); 
    </script> 

<fieldset> 
    <legend>Grade</legend> 

    <div class="editor-label"> 
     @Html.DropDownListFor(model => model.g_type, new List<SelectListItem>{ 
     new SelectListItem {Value = "1", Text = "Written Work"}, 
     new SelectListItem {Value = "2", Text = "Performance Task"}, 
     new SelectListItem {Value = "3", Text = "Quarterly Assesment"}, 
     }, new {id = "ddltype" }) 
     @Html.ValidationMessageFor(model => model.g_type) 
    </div> 

    <div class="editor-label"> 
     @Html.LabelFor(model => model.weighted_percent) 
    </div> 
    <div class="editor-field"> 
     @Html.TextBoxFor(model => model.weighted_percent, new { id = "Average" }) 
     @Html.ValidationMessageFor(model => model.weighted_percent) 
    </div> 

контроллер

public JsonResult getWeightedAverage(string id) 
    { 
     string Ave = "40"; 
     return Json(Ave, JsonRequestBehavior.AllowGet); 
    } 
+0

Почему 'этой .Average' ?, просто '$ (« # Average »). Val (Average);' будет работать. –

+0

все еще не работает :( – Renz

ответ

0

Используйте переменную, которая имеет ответ, возвращающийся с вашего вызова сервера. Вам не нужно this.

$(document).ready(function() { 
    $("#ddltype").change(function() { 
     var id = $(this).val(); 
     $.getJSON("../Employee/getWeightedAverage", { id: id }, function (res) { 
      $("#Average").val(res); 
     }); 
    }); 
}); 

Я также рекомендую вам использовать Url.Action метод для построения URL вместо жесткого кодирования.

$.getJSON("@Url.Action("getWeightedAverage","Employee")", { id: id }, function (response) { 
    $("#Average").val(response); 
}); 

Если ваш код не в целях бритвы, но во внешнем JS-файлов, вы создаете базовый URL, на ваш взгляд бритвы и использовать его в файле JS, как описано в this answer.

+0

все еще не работает :(Я уже отредактировал код – Renz

+0

Он должен работать нормально, просто проверил его. Уверен, у вас есть другая ошибка скрипта на странице. Посмотрите на консоль вашего браузера. – Shyju

+0

ReferenceError: $ не задано addGrade: 7: 9 какая часть является ошибкой, которая является единственным скриптом, который у меня есть – Renz

Смежные вопросы