1

Ajax を使用してサーブレットを呼び出した後、jsp ファイルで宣言されたテキスト フィールドにテキストを入力しようとしています。xmlhttp.responseText には、サーブレットによって返されたテキストが含まれていますが、メッセージ ID を含む入力にはそのテキストが入力されておらず、理由がわかりません。助言がありますか?使用したコードは以下です。

function ajaxFunction() {
  if(xmlhttp) { 
   var txtname = document.getElementById("txtname");
    xmlhttp.open("POST","getname",true); //getname will be the servlet name
    xmlhttp.onreadystatechange  = handleServerResponse;
    xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xmlhttp.send("txtname=" + txtname.value); //Posting txtname to Servlet
  }
}

function handleServerResponse() {
    //alert(xmlhttp.readyState);//ok    
   if (xmlhttp.readyState == 4) {
       alert(xmlhttp.status);
     if(xmlhttp.status == 200) {
         alert(xmlhttp.responseText); // this is ok
         document.getElementById("message").innerHTML=xmlhttp.responseText; // doesn't work
       //document.myForm.message.innerHTML=xmlhttp.responseText; //neither
     }
     else {
        alert("Error during AJAX call. Please try again");
     }
   }
}
</script>

<body>
  <form name="myForm" method="POST" action="/ajjax/getname">
    <table>
      <tr>
        <td>Enter Name</td>
        <td><input type="text" name="txtname" id="txtname" /></td>
      </tr>
      <tr>
        <td colspan="2"><input type="button" value="Submit" onclick="ajaxFunction();" /></td>
      </tr>
    </table>
    <input type="text" name="message" id="message" />  
  </form>
</body>
</head> </html>
4

1 に答える 1

2

これを試して:

document.getElementById("message").value = xmlhttp.responseText;

<input/>フィールドにはvalue属性があり、innerHtml機能しません (少なくとも期待どおり)。

于 2012-04-22T11:40:23.417 に答える