如何解决如何在AJAX中使用最近的Jquery?
在这里,我尝试根据成绩下拉列表@Html.EditorFor(model => Model.CreditHourAndFullMarksPartialViewViewModels[i].GradePoint,new { htmlAttributes = new { @class = "form-control",@id = "txtGradePoint" } })
的更改在@Html.DropDownListFor(model => Model.CreditHourAndFullMarksPartialViewViewModels[i].FinalGrade,new SelectList(ViewBag.FinalGrade,"GradePointId","Grading"),"-- Select Grade --",new { @class = "form-control",@id = "slcFinalGrade" })
的相应编辑器上设置成绩点值。
但是尽管所有值都可以在ajax中使用,但editorfor中的值并未显示。
下面是我的Jquery Ajax
<script>
$("select#slcFinalGrade").change(function () {
debugger
var getGradeVal = $("select#slcFinalGrade").val();
var parameter = { gradePointId: getGradeVal }
$.ajax({
url: "/StudentResults/GetGradePoint",data: parameter,type: "GET",success: function (data) {
debugger
$(this).closest('tr').find('input#txtGradePoint').val(data)
}
})
});
</script>
下面是我的HTML
@for (int i = 0; i < Model.CreditHourAndFullMarksPartialViewViewModels.Count; i++)
{
<tr>
@Html.HiddenFor(model => Model.CreditHourAndFullMarksPartialViewViewModels[i].ResultId)
<td>
@Html.DropDownListFor(model => Model.CreditHourAndFullMarksPartialViewViewModels[i].Practical,new SelectList(ViewBag.Pratical,new { @class = "form-control" })
@Html.ValidationMessageFor(model => Model.StudentResult.Practical,"",new { @class = "text-danger" })
</td>
<td>
@Html.DropDownListFor(model => Model.CreditHourAndFullMarksPartialViewViewModels[i].FinalGrade,@id = "slcFinalGrade" })
@Html.ValidationMessageFor(model => Model.StudentResult.FinalGrade,new { @class = "text-danger" })
</td>
<td>
@Html.EditorFor(model => Model.CreditHourAndFullMarksPartialViewViewModels[i].GradePoint,@id = "txtGradePoint" } })
@Html.ValidationMessageFor(model => Model.StudentResult.GradePoint,new { @class = "text-danger" })
</td>
</tr>
}
下面是我的控制器方法
public decimal GetGradePoint(int gradePointId)
{
var getPoint = db.GradePoints.Where(x => x.GradePointId == gradePointId).FirstOrDefault().Points;
return Convert.ToDecimal(getPoint);
}
解决方法
您需要做的就是在回调中指向正确的this
。
$("select#slcFinalGrade").change(function () {
var $select = $(this);
var getGradeVal = $("select#slcFinalGrade").val();
var parameter = { gradePointId: getGradeVal }
$.ajax({
url: "/StudentResults/GetGradePoint",data: parameter,type: "GET",success: function (data) {
// this in here refers to success callback function..
$select.closest('tr').find('input#txtGradePoint').val(data)
}
})
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。