jquery - 如何在 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, "GradePointId", "Grading"), "-- Select Grade --", new { @class = "form-control" })
@Html.ValidationMessageFor(model => Model.StudentResult.Practical, "", new { @class = "text-danger" })
</td>
<td>
@Html.DropDownListFor(model => Model.CreditHourAndFullMarksPartialViewViewModels[i].FinalGrade, new SelectList(ViewBag.FinalGrade, "GradePointId", "Grading"), "-- Select Grade --", new { @class = "form-control", @id = "slcFinalGrade" })
@Html.ValidationMessageFor(model => Model.StudentResult.FinalGrade, "", new { @class = "text-danger" })
</td>
<td>
@Html.EditorFor(model => Model.CreditHourAndFullMarksPartialViewViewModels[i].GradePoint, new { htmlAttributes = new { @class = "form-control", @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)
}
})
});
推荐阅读
- reactjs - 使用库时,类型“元素”不可分配给类型 ReactChild[]
- amazon-cloudfront - Cloudfront 缓存行为应用不正确
- html - 如何很好地设置 html 样式?
- javascript - 事件循环是否与 JS 主线程在同一线程上运行?
- javascript - Modal通过点击调用,但立即消失(Next.js)
- swift - 快速替换 PDF 中的图像。如何获取页面中的图像位置?
- laravel - 仅当用户是管理员时 Laravel Fortify 登录
- python - 创建表并从 CSV 文件复制数据
- windows - 使用 winautomation 进程本身在 winautomation 中暂停/播放进程
- laravel - 如何对忽略数组中的当前 id 的数组应用 laravel 唯一验证?