私は長い間jQueryを使用していませんが、問題なくMVCコントローラーにデータを送信し、データが保存され、成功関数がヒットしているこのフォームがあります。 )そこで、それは解雇されます。また、私の ClearFields() 関数が起動しています。ただし、ajax を使用して projectId のサンプルのリストを取得する GetSamples(projId) 関数は、起動していませんが、ページロード時に起動します。
以下は私のコードです...誰かが私を正しい方向に向けることができれば、それがうまくいかない理由がわかりません
$(function () {
var projectId = "@Model.Project.Id";
GetSamples(projectId);
$("#refreshButton").button().click(function () {
GetSamples(projectId);
});
$("#saveSampleButton").button().click(function () {
$.ajax({
url: "/PreRegistration/AddSample",
type: "POST",
data: { projectId: projectId,
customerSampleId: $("#CustomerSampleId").val(),
customerSampleId2: $("#CustomerSampleId2").val(),
customerSampleId3: $("#CustomerSampleId3").val(),
customerSampleId4: $("#CustomerSampleId4").val(),
matrix: $("#Matrix").val(),
product: $("#Product").val(),
productGrade: $("#ProductGrade").val(),
dueDate: $("#DueDate").val()
},
success: function (response, projectId, jqXHR) {
alert("done");
ClearFields();
GetSamples(projectId);
},
error: function (xyz) {
alert("Something went wrong : " + xyz.val());
}
});
return false;
});
$("#DueDate").datepicker({ dateFormat: "dd/mm/yy" });
function ClearFields() {
$("#CustomerSampleId").val("");
$("#CustomerSampleId2").val("");
$("#CustomerSampleId3").val("");
$("#CustomerSampleId4").val("");
$("#Matrix").val("");
$("#Product").val("");
$("#ProductGrade").val("");
$("#DueDate").val("");
}
function GetSamples(pId) {
$.ajax({
url: "/PreRegistration/GetSamples",
type: "POST",
data: { Id: pId },
success: function (response) {
$("#ProjectSamples tbody").replaceWith(response)
}
});
}
});
GetSamples() 関数が起動しているように見えますが、テーブルを更新していません...
$(function () {
var projectId = "@Model.Project.Id";
GetSamples(projectId);
$("#saveSampleButton").button().click(function () {
$.ajax({
url: "/PreRegistration/AddSample",
type: "POST",
data: { projectId: projectId,
customerSampleId: $("#CustomerSampleId").val(),
customerSampleId2: $("#CustomerSampleId2").val(),
customerSampleId3: $("#CustomerSampleId3").val(),
customerSampleId4: $("#CustomerSampleId4").val(),
matrix: $("#Matrix").val(),
product: $("#Product").val(),
productGrade: $("#ProductGrade").val(),
dueDate: $("#DueDate").val()
},
success: function (projectId) {
ClearFields();
GetSamples(projectId);
},
error: function (xyz) {
alert("Something went wrong : " + xyz.val());
}
});
return false;
});
$("#DueDate").datepicker({ dateFormat: "dd/mm/yy" });
function ClearFields() {
$("#CustomerSampleId").val("");
$("#CustomerSampleId2").val("");
$("#CustomerSampleId3").val("");
$("#CustomerSampleId4").val("");
$("#Matrix").val("");
$("#Product").val("");
$("#ProductGrade").val("");
$("#DueDate").val("");
}
function GetSamples(projectId) {
$.ajax({
url: "/PreRegistration/GetSamples",
type: "POST",
data: { Id: projectId },
success: function (response) {
$("#ProjectSamples tbody").replaceWith(response)
}
});
}
});
デバッグが完了し、projectId (1) が関数に正しく渡されています。VSでは、コントローラのアクションで、データがフェッチされてビューに返されます...しかし、テーブルは再入力されていません