0

我只想用 ajax 调用的响应来更新文本框。我得到了响应,并使用它分配给了文本框

document.getElementById("testPad").value = xmlHttpRequest.responseText;

它使用恰好是整个 HTML 页面的整个响应文本进行更新。

在服务器操作上,我发送响应如下:

response.setContentType("text/plain");
response.getWriter().write(output);

虽然这听起来微不足道,但我正面临着一个地狱般的时间,请大家帮忙。TIA。

4

4 回答 4

0

尝试刷新/关闭流。

response.setContentType("text/plain");
response.getWriter().write(output);
response.getWriter().close();

我建议jQuery.ajax()。下载 jQuery.js 或只使用 CDN url。

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script type="text/javascript">
    $(function () {
        $("#btnSubmit").click(function () {
            $.ajax({
                url: "serverAction",
                success: function (data) {
                    $("#resultText").val(data);
                },
                error: function (xhr, status, errorDesc) {
                    alert(errorDesc);
                }
            });
        });
    });
</script>

<div>
  <input type="text" id="resultText" />
  <input type="button" id="btnSubmit" value="Show" />
</div>
于 2012-08-23T05:57:28.293 回答
0

假设您有一个文本框和一个按钮单击按钮,您必须更新您的文本框

 <input id="txtClicked" type="text" runat="server" />
 <input id="buttClicked" type="button" runat="server" />

  $("#buttClicked").click(function(){
  $.ajax({
  type: "POST",
  url: "Dashboard.aspx/GetTreeNodesByText", // that's your server side page and the function
  data: "{}",
  contentType: "application/json; charset=utf-8",
  dataType: "json",
  success: function (data) {
  $("#txtClicked").val(data.d); //data.d is the response from the server
  }
  });
   });
于 2012-08-23T05:59:06.277 回答
0

您需要将 responseText 字符串解析为 HTML DOM,您可以从中轻松检索所需的信息。

这个链接应该让你开始:

https://developer.mozilla.org/en-US/docs/Code_snippets/HTML_to_DOM?redirectlocale=en-US&redirectslug=Code_snippets%3AHTML_to_DOM

于 2012-08-23T06:06:50.253 回答
0

我通过设置 header 属性让它工作

response.setHeader("Cache-Control", "no-cache");

这是一个反复试验,仍然不知道它起作用的确切原因。

感谢您的所有投入。

于 2012-08-24T04:21:08.690 回答