如何使用JQuery更改模型的值?
如何使用JQuery更改模型的值?
我正在使用Asp.Net MVC,并且我有一个模型,其中有一个属性status。在表单中有两个input type="submit"来提交表单,它们分别是:save and post和save。我想要当我点击save and post按钮时,将status属性的值更改为1,当用户点击save按钮时,将status的值更改为0。
为了做到这一点,我尝试使用JQuery获取input的id,并更改status属性,但是还无法实现。
我应该如何做到这一点?
html部分:
jquery部分:
$(document).ready(function () {
$('#addPropriedade').submit(function () {
var dados = new FormData($('#addPropriedade').get(0));
$('#savePost').click(function () {
dados.status = 1;
console.log(dados.status);
});
$('#save').click(function () {
dados.status = 0;
console.log(dados.status);
});
$("#errorMessage").hide();
var loading = $("#div_loading");
$(document).ajaxStart(function () {
loading.show();
});
$(document).ajaxStop(function () {
loading.hide();
});
$.ajax({
accepts: { json: 'application/json' },
dataType: 'json',
type: "POST",
url: "/Propriedade/addAjax",
data: dados,
processData: false,
contentType: false,
success: function (data) {
var status = data["status"];
var msg = data["msg"];
if (status === "1") {
$('#addPropriedade').trigger("reset");
$("#errorMessage").html(msg);
$("#errorMessage").prop("class", "alert-success");
//window.location.replace("/Empresa/view");
} else {
$("#errorMessage").html(msg);
$("#errorMessage").prop("class", "alert-danger");
}
$("#errorMessage").show()
},
error: function (xhr, status) {
$("#errorMessage").html("Erro tentando cadastrar");
$("#errorMessage").prop("class", "alert-danger");
$("#errorMessage").show()
}
});
return false;
});
});
问题的原因是在JQuery脚本中,FormData的值没有被更改。解决方法是在点击保存按钮时,同时将FormData的值更改为0。
以下是完整的文章:
一种使用JQuery改变模型值的方法
在开发过程中,有时我们需要使用JQuery来修改模型的值。然而,在以下的代码中,我们发现FormData的值没有被更改。
$(document).ready(function () { $('#addPropriedade').submit(function () { $('#savePost').click(function () { var dados = new FormData($('#addPropriedade').get(0)); dados.status = 1; console.log(dados.status); }); $('#save').click(function () { var dados = new FormData($('#addPropriedade').get(0)); dados.status = 0; console.log(dados.status); }); // 其他代码... }); });
实际上,通过查看JQuery脚本,我们可以发现,当用户点击保存按钮时,我们尝试同时提交表单数据和将status值设置为0。但是,FormData的值并没有被更改。
为了解决这个问题,我们需要在点击保存按钮时初始化FormData的值。下面是更新后的解决方法:
$(document).ready(function () { $('#addPropriedade').submit(function () { $('#savePost').click(function () { var dados = new FormData($('#addPropriedade').get(0)); dados.status = 1; console.log(dados.status); }); $('#save').click(function () { var dados = new FormData($('#addPropriedade').get(0)); dados.status = 0; console.log(dados.status); }); // 其他代码... }); });
通过在点击保存按钮时初始化FormData的值,我们可以确保模型的值在使用JQuery脚本时被正确修改。
问题出现的原因:用户想要通过使用jQuery来改变一个模型的值。
解决方法:
1. 如果在同一个cshtml文件中使用了jQuery,并且该文件中的模型是强类型的,可以直接使用@字符访问模型对象。例如:var status = '.status',然后可以赋予任何想要的值。
2. 在以下链接中详细说明了使用其他类型的模型的示例:https://stackoverflow.com/a/41312348/3397630
希望对您有帮助,请告诉我您的想法或反馈。谢谢!