2017-05-26 47 views
0

我使用Asp.Net MVC,我有其中有一个属性status模型,并在form有2 input type =" submit "提交form,它们分别是:save and postsave。我想,当我在按钮save and post变化单击status属性值1,当按钮save变化status用户点击值0如何使用JQuery更改模型的值?

要做到这一点,我想使用jQuery获得inputid和更改status属性,但仍不能这样做。

我该怎么做?

HTML

<input type="submit" class="btn btn-success" value="Save Post" id="savePost"/> 
<input type="submit" class="btn btn-success" value="Save" id="save" /> 

的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

您的点击功能是否被触发?当你点击保存并发布按钮? – ISHIDA

回答

1

$(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); 
    }); 


    $("#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

它不会改变'FormData'的值,看看我的JQuery脚本,我正在使用'FormData' – FernandoPaiva

+0

你想做什么很激动?当用户点击保存按钮时,您正在尝试发布formdata,同时需要将staus设置为0正确? – ISHIDA

+0

是的,FormData作为'Model'发送给控制器。 'status'是'Model'的一个属性,你能理解吗? – FernandoPaiva

1

嗨简单的解决方案,我认为是,如果您使用jquery在相同的cshtml文件模型强烈键入。

然后您可以使用@字符直接访问模型对象。

例子:

VAR状态= '@ model.status'

然后你可以指定任何你想要的值。

与所有其他类型的详细例子在下面的链接已经很好的解释:

https://stackoverflow.com/a/41312348/3397630

希望它是有用的,请让我知道你的想法或反馈

感谢

Karthik