2012-04-22 17 views
1

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

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> 

答えて

2

これを試してみてください:

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

<input/>フィールドはvalue属性を持っている、innerHtmlは動作しません(少なくともとして期待されます)。

+0

ありがとう、それは動作します:) – Steffi

+1

@Steffi:問題が解決したことを示すために[upvoting/accepting](http://meta.stackexchange.com/questions/5234)正解と考えてください誰があなたを助けたのか、私のことだった:-))。 –

+0

@ user1308140は誰ですか? – Lion

関連する問題