如何使用JQuery更改模型的值?

9 浏览
0 Comments

如何使用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;

});

});

0
0 Comments

问题的原因是在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脚本时被正确修改。

0
0 Comments

问题出现的原因:用户想要通过使用jQuery来改变一个模型的值。

解决方法:

1. 如果在同一个cshtml文件中使用了jQuery,并且该文件中的模型是强类型的,可以直接使用@字符访问模型对象。例如:var status = '.status',然后可以赋予任何想要的值。

2. 在以下链接中详细说明了使用其他类型的模型的示例:https://stackoverflow.com/a/41312348/3397630

希望对您有帮助,请告诉我您的想法或反馈。谢谢!

0