2012-04-22 7 views
1

Привет, Я пытаюсь заполнить текстовое поле, объявленное в jsp-файле, некоторым текстом после вызова сервлета с использованием Ajax. Текст xmlhttp.responseText содержит текст, возвращаемый сервлетом, но вход с идентификатором сообщения не заполняется этим текстом, и я не знаю почему. Какие-либо предложения? Используемый код приведен ниже.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

+1

@Steffi: рассмотрите [upvoting/accepting] (http://meta.stackexchange.com/questions/5234) правильный ответ, чтобы указать, что проблема решена (и вознаградить человека который помог вам, что оказалось мне :-)). –

+0

Кто такой @ user1308140? – Lion