2012-04-22 68 views
1

嘿,我想在使用Ajax調用一個servlet之後用一些文本填充在jsp文件中聲明的文本字段。 xmlhttp.responseText包含由servlet返回的文本,但帶有消息標識的輸入未填充該文本,我不知道爲什麼。有什麼建議麼?使用的代碼如下。servlet + 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 2012-04-22 11:41:44

+1

@Steffi:請考慮[upvoting/accepting](http://meta.stackexchange.com/questions/5234)正確答案以表明問題已解決(並獎勵此人誰幫助過你,碰巧是我:-))。 – 2012-04-22 11:43:24

+0

誰是@ user1308140? – Lion 2012-04-22 11:45:44