【发布时间】:2018-05-31 23:19:53
【问题描述】:
我有一个表单,其中有一个下拉列表。下拉列表正在 AJAX 调用中填充。有一个按钮,单击它会发送 AJAX 调用并将要填充的数据作为选项返回到下拉列表。 现在,如果选择了该选项并成功提交了表单,则选择的值将存储在数据库中。
但是,如果我在下拉列表中选择一个选项,并且我的表单中有一些验证问题,那么在提交时,页面会显示错误并“刷新”。这导致在 AJAX 调用期间填充的选项消失,因为没有再次调用 ajax 来填充列表。
那么,如何在第一次 AJAX 调用期间存储该值,以便在页面刷新时存储或填充该值。
如果列表是手动填充的,即如果我事先知道选项,我可以将选定的值存储在隐藏变量中,但我不能在这里执行。
这是我的 AJAX 函数:
$.ajax({
type: "POST",
dataType: 'json',
url: "/Controller/Action",
data: {
param: param,
},
success: function(data) {
if (data.Response == "Unsuccessful") {
console.log("Unsuccessful");
} else if (data.Response == "Successful" || data.Response == "ConditionallySuccessful") {
for (var i = 0; i < data.ExteriorColor.Data.length; i++) {
//This is the drop down list which is populated
$("#Exterior_Color").append($("<option></option>").val(data.ExteriorColor.Data[i]).html(data.ExteriorColor.Data[i]));
console.log(data.ExteriorColor.Data[i]);
}
}
},
error: function(result) {
console.log("Error while fetching data");
}
});
【问题讨论】:
-
如果它们是验证错误,则阻止提交,以便页面不会刷新并且用户可以更正错误。你从哪里调用ajax帖子?如果您在
submit事件处理程序中,则可以返回 false,除非表单有效。 -
你不能把你的ajax调用放在一个函数中,然后在页面重新加载后再次调用那个函数吗?
-
@SamyCode 在这种情况下,我将丢失在下拉列表中选择的选项
-
这是一个 .Net 项目吗?也许是 MVC?
标签: javascript jquery asp.net ajax asp.net-mvc