如何在重新加载页面后在AJAX成功函数中设置一个值?

时间:2017-09-22 01:34:54

标签: javascript jquery json asp.net-mvc

重新加载页面后如何在Textarea函数中设置AJAX success控件的值?

通过以下代码,我在页​​面视图中得到一个值,即“Create.cshtml”

<script>
  $(document).ready(function () {
    $(".setLang").on("click", function (event) {
      var txt = $("#About").val();
      var langge = $(this).attr("data-lang");

      if (txt != null && txt != "" && langge != null && langge != "") {
        $.ajax({
          type : "POST",
          url :  "@Url.Action("Translation", "Home")",
          traditional: true,
          data: { text: txt, language: langge },
          success: successFunc,
          error: errorFunc
        });

        function successFunc(data){
          alert(data);
          $("#About").val(data);
        }
      }
    });
  });
</script>

但是当我试图像下面那样设置它时,它无法接受'textarea'

function successFunc(data) {
  alert(data);
  $("#About").val(data);
}

在共享视图中意味着一些代码运行如下所示,e,“_Layout.cshtml”

<script>
  $(document).ready(function () {
    var lang = MultiLanguageDemo.Cookies.getCookie("LangForMultiLanguageDemo");
    $(".setLang[data-lang='" + lang + "'] img").addClass("active-lang");
    $(".setLang").on("click", function (event) {
      var lang = $(this).attr("data-lang");                  
      MultiLanguageDemo.Cookies.setCookie("LangForMultiLanguageDemo", lang, 30);    
      location.reload(true);
    })
  });
</script>

文本区域是

<div class="form-group">
   @Html.Label("About", new { @class = "control-label col-md-2" })
   <div class="col-md-10">
     @Html.TextAreaFor(model => model.About, new { htmlAttributes = new { @class = "form-control" } })
     @Html.ValidationMessageFor(model => model.About, null, new { @class = "text-danger" })
   </div>
</div>

2 个答案:

答案 0 :(得分:0)

您是否尝试过使用(如果您使用的是HTML)

$("#About").html(data);

$("#About").append(data);

你也检查过数据是否为空?因为我看到你在没有传递任何数据的情况下调用函数。

也许这样做:

success: function(data) {
  $("#About").html(data);
}

success: succesFunc(data)

斯文

答案 1 :(得分:0)

您可以使用解决方案

$(document).ready(function () {

 if(localStorage.getItem("textareamessage") != null){
   $("#About").val(localStorage.getItem("textareamessage"));
 }

  $(".setLang").on("click", function (event) {
    var txt = $("#About").val();
    var langge = $(this).attr("data-lang");

    if (txt != null && txt != "" && langge != null && langge != "") {
      $.ajax({
        type : "POST",
        url :  "@Url.Action("Translation", "Home")",
        traditional: true,
        data: { text: txt, language: langge },
        success: successFunc,
        error: errorFunc
      });

      function successFunc(data){
        alert(data);
        localStorage.setItem("textareamessage", data);
        $("#About").val(data);
      }
    }
  });
});

我已使用localStorage代替cookies

请分享AJAX成功的响应数据。

希望这会对你有所帮助。